From nobody Sat Oct 4 22:02:24 2025 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; 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 ARC-Seal: i=1; a=rsa-sha256; t=1758390500; cv=none; d=zohomail.com; s=zohoarc; b=E0ZWt0M4oW9UVECu9aNKjXmI8cKrmvFIkv23LAHq837UChyW5dPdvfLuvE00Sb7dhJAP15n/ntjvEU2jFaEvJS+OjKOIiPnrB7u13GPZUeREF44pDxDzZ32mojjxHosQIjLRlRrK7Q3ga49JqfcFaysDl8itvG5vblRMAMuIoJw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1758390500; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Nnhy/WcZtN3kTUljtGt+CfyIIvU2I2Q6XwMwbPjJp78=; b=ZCxSuBy6LS7rHIWHYuECB/Yg0YQT8K2oY4EwMlEt/uIOcBG3Q3S2OVmsey5OlTMLIBgygxaB4BlJDA7aMY+vHlkOQGs6SdQ6VmBuOX6JxFVMyspG+OP3R84jexkU2j90y6RjojLffKKM3T00UBzMJRkYodOzRSVRVx8qBDjTUtA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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 Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1758390500160568.8885150742846; Sat, 20 Sep 2025 10:48:20 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1127453.1468302 (Exim 4.92) (envelope-from ) id 1v01ge-0007db-BT; Sat, 20 Sep 2025 17:47:52 +0000 Received: by outflank-mailman (output) from mailman id 1127453.1468302; Sat, 20 Sep 2025 17:47:52 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1v01ge-0007dU-8S; Sat, 20 Sep 2025 17:47:52 +0000 Received: by outflank-mailman (input) for mailman id 1127453; Sat, 20 Sep 2025 17:47:51 +0000 Received: from mail.xenproject.org ([104.130.215.37]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1v01gd-0007dO-M2 for xen-devel@lists.xenproject.org; Sat, 20 Sep 2025 17:47:51 +0000 Received: from xenbits.xenproject.org ([104.239.192.120]) by mail.xenproject.org with esmtp (Exim 4.96) (envelope-from ) id 1v01gd-001bDx-08; Sat, 20 Sep 2025 17:47:51 +0000 Received: from [19.12.91.86] (helo=localhost) by xenbits.xenproject.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1v01gc-003Bru-3C; Sat, 20 Sep 2025 17:47:50 +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" 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=Nnhy/WcZtN3kTUljtGt+CfyIIvU2I2Q6XwMwbPjJp78=; b=6Rq3FY E76JcEFYMstY65SsAV/dQHW56hWyG41Iin2eJiV3IRMq7P3U9+jQwS9Tl03OSfkRG1XkWG5uo1GHr PFUNY69sVAKgsN/soPVlK+LR/JSxcnxQOtmBq8L5IPHjeQaa0yX282J0HYnvejJpyKKK8FNZTYh8y 9lUBoAc1D08=; From: dmukhin@xen.org To: xen-devel@lists.xenproject.org Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com Subject: [PATCH v2] xen/domain: introduce DOMID_ANY Date: Sat, 20 Sep 2025 10:47:33 -0700 Message-ID: <20250920174732.1207847-2-dmukhin@ford.com> X-Mailer: git-send-email 2.51.0 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @xen.org) X-ZM-MESSAGEID: 1758390502275116600 Content-Type: text/plain; charset="utf-8" From: Denis Mukhin =20 Add a new symbol DOMID_ANY aliasing DOMID_INVALID to improve the readability of the code. Update all relevant domid_alloc() call sites. Amends: 2d5065060710 ("xen/domain: unify domain ID allocation") Signed-off-by: Denis Mukhin --- Changes since v1: - moved DOMID_ANY from the public header --- tools/tests/domid/harness.h | 1 + tools/tests/domid/test-domid.c | 12 ++++++------ xen/common/device-tree/dom0less-build.c | 2 +- xen/common/domctl.c | 2 +- xen/common/domid.c | 2 +- xen/include/xen/domain.h | 3 +++ 6 files changed, 13 insertions(+), 9 deletions(-) diff --git a/tools/tests/domid/harness.h b/tools/tests/domid/harness.h index 17eb22a9a854..610b564d4061 100644 --- a/tools/tests/domid/harness.h +++ b/tools/tests/domid/harness.h @@ -41,6 +41,7 @@ extern unsigned long find_next_zero_bit(const unsigned lo= ng *addr, =20 #define DOMID_FIRST_RESERVED (100) #define DOMID_INVALID (101) +#define DOMID_ANY DOMID_INVALID =20 #endif /* _TEST_HARNESS_ */ =20 diff --git a/tools/tests/domid/test-domid.c b/tools/tests/domid/test-domid.c index 5915c4699a5c..71cc4e7fd86d 100644 --- a/tools/tests/domid/test-domid.c +++ b/tools/tests/domid/test-domid.c @@ -41,20 +41,20 @@ int main(int argc, char **argv) domid_free(expected); =20 /* - * Test that that two consecutive calls of domid_alloc(DOMID_INVALID) + * Test that that two consecutive calls of domid_alloc(DOMID_ANY) * will never return the same ID. * NB: ID#0 is reserved and shall not be allocated by - * domid_alloc(DOMID_INVALID). + * domid_alloc(DOMID_ANY). */ for ( expected =3D 1; expected < DOMID_FIRST_RESERVED; expected++ ) { - allocated =3D domid_alloc(DOMID_INVALID); + allocated =3D domid_alloc(DOMID_ANY); verify(allocated =3D=3D expected, "TEST 3: expected %u allocated %u\n", expected, allocated); } for ( expected =3D 1; expected < DOMID_FIRST_RESERVED; expected++ ) { - allocated =3D domid_alloc(DOMID_INVALID); + allocated =3D domid_alloc(DOMID_ANY); verify(allocated =3D=3D DOMID_INVALID, "TEST 4: expected %u allocated %u\n", DOMID_INVALID, alloca= ted); } @@ -64,7 +64,7 @@ int main(int argc, char **argv) domid_free(expected); for ( expected =3D 1; expected < DOMID_FIRST_RESERVED / 2; expected++ ) { - allocated =3D domid_alloc(DOMID_INVALID); + allocated =3D domid_alloc(DOMID_ANY); verify(allocated =3D=3D expected, "TEST 5: expected %u allocated %u\n", expected, allocated); } @@ -72,7 +72,7 @@ int main(int argc, char **argv) /* Re-allocate last ID from [1..DOMID_FIRST_RESERVED - 1]. */ expected =3D DOMID_FIRST_RESERVED - 1; domid_free(DOMID_FIRST_RESERVED - 1); - allocated =3D domid_alloc(DOMID_INVALID); + allocated =3D domid_alloc(DOMID_ANY); verify(allocated =3D=3D expected, "TEST 6: expected %u allocated %u\n", expected, allocated); =20 diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tr= ee/dom0less-build.c index 9fd004c42af7..e2764768c983 100644 --- a/xen/common/device-tree/dom0less-build.c +++ b/xen/common/device-tree/dom0less-build.c @@ -848,7 +848,7 @@ void __init create_domUs(void) if ( (max_init_domid + 1) >=3D DOMID_FIRST_RESERVED ) panic("No more domain IDs available\n"); =20 - domid =3D domid_alloc(DOMID_INVALID); + domid =3D domid_alloc(DOMID_ANY); if ( domid =3D=3D DOMID_INVALID ) panic("Error allocating ID for domain %s\n", dt_node_name(node= )); =20 diff --git a/xen/common/domctl.c b/xen/common/domctl.c index 954d79022645..ca91686a03d8 100644 --- a/xen/common/domctl.c +++ b/xen/common/domctl.c @@ -410,7 +410,7 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_d= omctl) case XEN_DOMCTL_createdomain: { /* NB: ID#0 is reserved, find the first suitable ID instead. */ - domid_t domid =3D domid_alloc(op->domain ?: DOMID_INVALID); + domid_t domid =3D domid_alloc(op->domain ?: DOMID_ANY); =20 if ( domid =3D=3D DOMID_INVALID ) { diff --git a/xen/common/domid.c b/xen/common/domid.c index 2387ddb08300..76b7f3e7ae6e 100644 --- a/xen/common/domid.c +++ b/xen/common/domid.c @@ -19,7 +19,7 @@ static DECLARE_BITMAP(domid_bitmap, DOMID_FIRST_RESERVED); * @param domid Domain ID hint: * - If an explicit domain ID is provided, verify its availability and use= it * if ID is not used; - * - If DOMID_INVALID is provided, search [1..DOMID_FIRST_RESERVED-1] rang= e, + * - If DOMID_ANY is provided, search [1..DOMID_FIRST_RESERVED-1] range, * starting from the last used ID. Implementation guarantees that two * consecutive calls will never return the same ID. ID#0 is reserved for * the first boot domain (currently, dom0) and excluded from the allocat= ion diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h index 8aab05ae93c8..cd3e32d17683 100644 --- a/xen/include/xen/domain.h +++ b/xen/include/xen/domain.h @@ -15,6 +15,9 @@ struct guest_area { =20 #include =20 +/* Domain ID allocator: search [1..DOMID_FIRST_RESERVED-1] range. */ +#define DOMID_ANY DOMID_INVALID + typedef union { struct vcpu_guest_context *nat; struct compat_vcpu_guest_context *cmp; --=20 2.51.0