From nobody Mon Feb 9 23:30:23 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass header.i=teddy.astie@vates.tech; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=vates.tech ARC-Seal: i=1; a=rsa-sha256; t=1744985945; cv=none; d=zohomail.com; s=zohoarc; b=lfcTBJWBkEQSwSiAFf0Wp5TGDaWMkO7DUO69MU/SeXrlf+Kvx2L+EmG0AECbbLXvTP848NB3QYOv630G4Voo+7RjGPyYP0pOKJOn8d7Ush6N5godTB1SixF7QwJi8jvHYnqfEBjvhmHUHI5DhnxAe04KHJ2PfR1LPsHHEPHPT3s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1744985945; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=J8m3l8jLgJoz45tuYz9GxQr5xWvose2J1Z3O7gpBIvU=; b=Vi+52kEmyEO5AV37v764rOFOJF0E8yKo2LG/BCZ175qCeCMvVacnRhh9pfKZduNObUrF1U/jzd1+ITvv/XTB06pNIMdMbGxBv261DmRnJIoNcGDYNMOEM35be6d95S4pt8CJ2EYCHoEUdgkDBVGX/X7QG66cVTZL5yW8l/er/q8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=teddy.astie@vates.tech; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 174498594514315.224036056719342; Fri, 18 Apr 2025 07:19:05 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.959028.1351519 (Exim 4.92) (envelope-from ) id 1u5mYJ-0003Ef-GK; Fri, 18 Apr 2025 14:18:47 +0000 Received: by outflank-mailman (output) from mailman id 959028.1351519; Fri, 18 Apr 2025 14:18:47 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1u5mYJ-0003EY-Cj; Fri, 18 Apr 2025 14:18:47 +0000 Received: by outflank-mailman (input) for mailman id 959028; Fri, 18 Apr 2025 14:18:46 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1u5mYI-00030I-8i for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 14:18:46 +0000 Received: from mail128-130.atl41.mandrillapp.com (mail128-130.atl41.mandrillapp.com [198.2.128.130]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 08d4ebca-1c60-11f0-9ffb-bf95429c2676; Fri, 18 Apr 2025 16:18:44 +0200 (CEST) Received: from pmta08.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1]) by mail128-130.atl41.mandrillapp.com (Mailchimp) with ESMTP id 4ZfH1b2zgczS62GpR for ; Fri, 18 Apr 2025 14:18:43 +0000 (GMT) Received: from [37.26.189.201] by mandrillapp.com id 3200c3f3986847c79b468e7e43cd30ba; Fri, 18 Apr 2025 14:18:43 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 08d4ebca-1c60-11f0-9ffb-bf95429c2676 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com; s=mte1; t=1744985923; x=1745255923; bh=J8m3l8jLgJoz45tuYz9GxQr5xWvose2J1Z3O7gpBIvU=; h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID: Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date: Subject:From; b=qcQ00cSL8ayn5ry8W81StmFp1NKGS+MrKNdGSZpOcvsw9wmgUgAfYXZhMUEGwavaO MHpgnjlTu05U/vreBDsTG4yzd55/jwMKS1s5C6W1NsBntwS7RQoKN2RfAtPHJsB7Hf a64HqQVGN9vblmgTctfVQ5cpDQ/1POJJNtdH8OUdKbY8suyb4uepzxSB74FNu550ob WhMJmFV18F4IgiC4Cp3uBoRIrru5PiI7k1XlljdxljA9MUw/2fF+Dzr7w8h0RHbyng p+lQCHPS0F2YRnRjG7bBuI/Hu45d5xHs0om4m6LCdiTG5190m4wUN3P8lL6S3nkjRw HuymTIGol2g6Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1; t=1744985923; x=1745246423; i=teddy.astie@vates.tech; bh=J8m3l8jLgJoz45tuYz9GxQr5xWvose2J1Z3O7gpBIvU=; h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID: Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date: Subject:From; b=COFsAl0BbMxAJyNev1nL5BpPDeXF8hClJZQS/HZw+rewjynCYDF8KWNaTHb8o+ILC jn0qlo64bWTYB3ShvtrjNtysvGbV7QVGcfeoeqjP7HrvHTQJycXaIVan+fvt3+hWSE yr2WTzFfAOsxkQk3HPv/mruIa84I4F+ZvlRlv3l8kFsm5RGvLoD5pJW9N+GDQP4W// 8H2oNuMbyANcZmQlT1zmXUF7H7M5BhOsrxoay9nWcRh4wYTILwthQC4P8HH8Rf8HMV RjaJrjEdMrnS/JE/4ei6ILJhs9CgF+oUAnzAL8EDbatNpfTS6loSKjx4Z+lMcIAl0k OV8cTNGcLKlew== From: "Teddy Astie" Subject: =?utf-8?Q?[RFC=20PATCH=201/4]=20xen:=20Introduce=20physaddr=5Fabi=20CDF=20flag?= X-Mailer: git-send-email 2.47.2 X-Bm-Disclaimer: Yes X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2 X-Bm-Transport-Timestamp: 1744985922135 To: xen-devel@lists.xenproject.org Cc: "Teddy Astie" , "Andrew Cooper" , "Anthony PERARD" , "Michal Orzel" , "Jan Beulich" , "Julien Grall" , "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" , "Stefano Stabellini" Message-Id: In-Reply-To: References: X-Native-Encoded: 1 X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.3200c3f3986847c79b468e7e43cd30ba?= X-Mandrill-User: md_30504962 Feedback-ID: 30504962:30504962.20250418:md Date: Fri, 18 Apr 2025 14:18:43 +0000 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity teddy.astie@vates.tech) (identity @mandrillapp.com) X-ZM-MESSAGEID: 1744985946419019000 Content-Type: text/plain; charset="utf-8" Introduce the physaddr_abi flag to indicate that the guest uses physical addresses (gpaddr) instead of virtual addresses when performing hypercalls. Signed-off-by: Teddy Astie --- xen/common/domain.c | 10 +++++++++- xen/include/public/domctl.h | 4 +++- xen/include/xen/sched.h | 6 ++++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/xen/common/domain.c b/xen/common/domain.c index 585fd726a9..1a1e51c32d 100644 --- a/xen/common/domain.c +++ b/xen/common/domain.c @@ -716,12 +716,14 @@ static int sanitise_domain_config(struct xen_domctl_c= reatedomain *config) bool hap =3D config->flags & XEN_DOMCTL_CDF_hap; bool iommu =3D config->flags & XEN_DOMCTL_CDF_iommu; bool vpmu =3D config->flags & XEN_DOMCTL_CDF_vpmu; + bool physaddr_abi =3D config->flags & XEN_DOMCTL_CDF_physaddr_abi; =20 if ( config->flags & ~(XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap | XEN_DOMCTL_CDF_s3_integrity | XEN_DOMCTL_CDF_oos_off | XEN_DOMCTL_CDF_xs_domain | XEN_DOMCTL_CDF_iommu | - XEN_DOMCTL_CDF_nested_virt | XEN_DOMCTL_CDF_vpmu) ) + XEN_DOMCTL_CDF_nested_virt | XEN_DOMCTL_CDF_vpmu | + XEN_DOMCTL_CDF_physaddr_abi) ) { dprintk(XENLOG_INFO, "Unknown CDF flags %#x\n", config->flags); return -EINVAL; @@ -745,6 +747,12 @@ static int sanitise_domain_config(struct xen_domctl_cr= eatedomain *config) return -EINVAL; } =20 + if ( physaddr_abi && !hvm ) + { + dprintk(XENLOG_INFO, "Physical address ABI requested for non-HVM g= uest"); + return -EINVAL; + } + if ( iommu ) { if ( config->iommu_opts & ~XEN_DOMCTL_IOMMU_no_sharept ) diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h index 5b2063eed9..3a77efe673 100644 --- a/xen/include/public/domctl.h +++ b/xen/include/public/domctl.h @@ -66,9 +66,11 @@ struct xen_domctl_createdomain { #define XEN_DOMCTL_CDF_nested_virt (1U << _XEN_DOMCTL_CDF_nested_virt) /* Should we expose the vPMU to the guest? */ #define XEN_DOMCTL_CDF_vpmu (1U << 7) +/* Do the guest use physical addresses for hypercalls ? */ +#define XEN_DOMCTL_CDF_physaddr_abi (1U << 8) =20 /* Max XEN_DOMCTL_CDF_* constant. Used for ABI checking. */ -#define XEN_DOMCTL_CDF_MAX XEN_DOMCTL_CDF_vpmu +#define XEN_DOMCTL_CDF_MAX XEN_DOMCTL_CDF_physaddr_abi =20 uint32_t flags; =20 diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h index 559d201e0c..a29c63c737 100644 --- a/xen/include/xen/sched.h +++ b/xen/include/xen/sched.h @@ -1201,6 +1201,12 @@ static always_inline bool hap_enabled(const struct d= omain *d) evaluate_nospec(d->options & XEN_DOMCTL_CDF_hap); } =20 +static always_inline bool is_hvm_physaddr_abi(const struct domain *d) +{ + return IS_ENABLED(CONFIG_HVM) && + evaluate_nospec(d->options & XEN_DOMCTL_CDF_physaddr_abi); +} + static inline bool is_hwdom_pinned_vcpu(const struct vcpu *v) { return (is_hardware_domain(v->domain) && --=20 2.47.2 Teddy Astie | Vates XCP-ng Developer XCP-ng & Xen Orchestra - Vates solutions web: https://vates.tech