From nobody Thu Jul 23 22:29:24 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; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass(p=none dis=none) header.from=valinux.co.jp ARC-Seal: i=2; a=rsa-sha256; t=1781855461; cv=pass; d=zohomail.com; s=zohoarc; b=EQ0GoLsoY9ZXvEb92fRXnMxV3uWiBUROUIbPjVEcpr7BS7m7cHj9UedFSiAFFw/EGreEYWlpqPMpViDXAyLr4sUB2IPn7oVdOovg+Yt5k3dVDrGalV0jSCdJMNtH2y1ApE1d5IqXzrxmsUWl2ysSS8JBs6HYq1jLy4wAfE54dM4= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781855461; 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=XqzPDWwCk81V+4XPneDM8qTwAhjlrgmLc9YUkmpu6Y4=; b=T6bRIHcRH+/ZopjKSS3Pk30GsiXVdG0XvTYhGomEx/O0n/zjZ4ixyfLR0FHlhppShFHHDDcnFTXWG2iwRcfNLJWlP4DvSyorXT2ddZDzrwPgAbNNZPg0Udnl+lOv43wh3oRhSCK7wTdetm5bYjH7XI65vbk1T4dxced8eLiYiDc= ARC-Authentication-Results: i=2; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1781855461118581.7806134890894; Fri, 19 Jun 2026 00:51:01 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1341730.1601990 (Exim 4.92) (envelope-from ) id 1waTze-0003w9-4I; Fri, 19 Jun 2026 07:50:26 +0000 Received: by outflank-mailman (output) from mailman id 1341730.1601990; Fri, 19 Jun 2026 07:50:26 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waTze-0003w2-1V; Fri, 19 Jun 2026 07:50:26 +0000 Received: by outflank-mailman (input) for mailman id 1341730; Fri, 19 Jun 2026 07:50:24 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waTza-0003vq-VZ for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 07:50:24 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1waTzZ-001qMv-L2 for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 09:50:21 +0200 Received: from [10.42.69.11] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a34f4b5-2eae-0a2a0a5409dd-0a2a450bb90e-24 for ; Fri, 19 Jun 2026 09:50:20 +0200 Received: from [40.107.74.114] (helo=OS0P286CU010.outbound.protection.outlook.com) by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.0) (envelope-from ) id 6a34f4b9-5e53-0a2a450b0019-286b4a724d13-3 for ; Fri, 19 Jun 2026 09:50:20 +0200 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) by TY4P286MB7477.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:356::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.139.11; Fri, 19 Jun 2026 07:50:15 +0000 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0139.011; Fri, 19 Jun 2026 07:50:15 +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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=prjpCAtF2OY40ryy6Z8I4Bvzmqt3ctMWN4JlfLcaEhmb0rLy92TMr1yDsfzef/c3qdXMCD1CY+xhMGkvN/da4p+2cfl9aJ1GI0q+0vqhfzJsr4S5h5XvxRBSHU3G4z4JDt+6WxoISFBjqnZ8yaXIlnpXIkcvySysRfyqdhNlyqrMl8S/0HzjGY8aK3cAMRY3fJWlfgnBoOCfF0AK1WLM3T6gaT4do/H5EpcwLu/plcrSZqI60XpmbDr6zPFo8cRL3PLP4mtJhg5B+fwPCPACYLZ5XGRdSVMe1t5BTPK4cL+CG1GXzM6TqdyEpoA/oAKhO7Y70+Mwi9zl4kZQ0pYktA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=XqzPDWwCk81V+4XPneDM8qTwAhjlrgmLc9YUkmpu6Y4=; b=f9HHOLVFvacg56EevAz5BvTXlngxQwiEOkFIJ02NNzfouyV9JD1A8ct2E2AKCQKlkgkugXAODkBLPcR7f6RJvRkgyF72SGl0/3OiEXN1NrVbNM3vEMXUkzic/KfXb206c9sVqiZz6Gf9mDxH64h3DVnWwMw65BTfJvz9UfHLRdIllSI9bq2iWhFrfU1JJwS6WTKXCrDo59kxJHkuuadkVLRPxh6lKjE60kbm2cnZoopBX6Wk8lWZBFtUVcca8CceF2XcTqrm9QDjIWl/1QtEh+Tq+zbxykFvpp8WvyE30VTgJkP50sMjZnvwga8SMSEVzgyMkjLUOTEDuPtQqM6Y8Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XqzPDWwCk81V+4XPneDM8qTwAhjlrgmLc9YUkmpu6Y4=; b=syZSFCww3OQFdWEUQTAORSX6eurxfwZRVxXVn5erDNcWKZfavHScpm8kG2Q4XyLSYPBNlogOKtPcTL2acix/XyI8pzcCmyQumXZtzAi7mf3vJPkxuAfw1mZSvBSeMBUDAgIpNX3bhClHQprmfHRvqaWK37hARU1Z/ipAIINymOU= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; From: Hirokazu Takahashi To: xen-devel@lists.xenproject.org Cc: Hirokazu Takahashi , Andrew Cooper , Anthony PERARD , Michal Orzel , Jan Beulich , Julien Grall , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Stefano Stabellini Subject: [PATCH v3 01/22] xen/device-tree: Initial framework for Device Tree NUMA support Date: Fri, 19 Jun 2026 16:49:49 +0900 Message-ID: <20260619075011.377116-2-taka@valinux.co.jp> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260619075011.377116-1-taka@valinux.co.jp> References: <20260619075011.377116-1-taka@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY4P301CA0011.JPNP301.PROD.OUTLOOK.COM (2603:1096:405:26f::11) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TY4P286MB7477:EE_ X-MS-Office365-Filtering-Correlation-Id: 5deba6c4-399f-4cbd-7442-08decdd766a5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|23010399003|376014|1800799024|10070799003|56012099006|6133799003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: Gcxbe9lTwOwgBA0E5iXJzX0LyojYsihTk+yfDKKJIsO43doYTK+3+KltFOs6cWNURwVVZ0YcFx0gIYXVhHf+8AGuk9FzEzwqDrAx4eBI7L9/nm9wkOOisKlhfDHOGMtzW+aW3axhMUxbs9TXdxu2X9BRAdaN+erMEKCAQKKvi7o5EPFjc4k1unNuRAGBLEQ5seyWQMr179ALP4h9GfGDBXBgzw3NcUEt85D7lFc/NdZ/rv9Uc1my/0NWg+KuDisWcdbG3xSc2mGnQvKQPyCO/CguOh+uO4K1QBI/QiB+W0EEgrHePpWAqXyH8IRB8phKpL2c4Y5LQXg8fOJD4Vpdw+wNlEAiUhXykUA3coQVKk3Lb4HyK3zgVAHs+NXnXfoR1lRqCUIBQz03KhaHi/rW/S1zUdpfCwXyusMjqvBi3hQOFymOsv8Zic4Rvnuy1Y56Wgj7zjSXCqrgI01yPiDLszgGcm3kM8rU0dkN8TuVOFq54sKZ2lbB3SvNjkgTr3SJsAVJOYlrH3vwmMEAdRZIoNHzyZxPvLMTpmQpMaFfczdqHD++5+NkrLj8NkhHTzrueX2nsiMHVmz4ET+XXGEcPzJjJzeL8e+T4BhxHhR/XMq9qudLvvfDB3VqOJ7vVgdLHuLGueESMqjZzWjoRwTC4LumDqvKrVzZe+XQJblt6SQ= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(23010399003)(376014)(1800799024)(10070799003)(56012099006)(6133799003)(18002099003)(22082099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?oauMwS1NhPcc7fG9hPmo1AVW7zToMNLsjBXolO9wfGkvTu6r3QOqL9PKTsn2?= =?us-ascii?Q?PIQOBJRvE8EceIf1gtmblATJEZh3HIE1GxdWA7PhXGtHUQBqdPSj08IV+mtj?= =?us-ascii?Q?S2YNPb0uZe3pl6VyDwUIq29af8QD7jk/YkcxFpCqWH3Vb3n5ygiEjYmRDXFD?= =?us-ascii?Q?1R1tgEpDaXOpBb8ReHtQJjHzW62wGmxINw/6qhBfiE1QRurATgll9mwavq7j?= =?us-ascii?Q?bU5/ccpevFF54KW2iLn0giKoZEDZCJxUlH14fN42FWjMjLEyuL0dxjj0kejV?= =?us-ascii?Q?J4h6KjFvGTLqeEgW+Tyei4/N+urR1rg6UzkWNk15dK/tqSSvyhSb3EahD5Os?= =?us-ascii?Q?Hv1t64buD+QDqGMrchy7nySImkFiOsO4E7nGIqg/D9dA04z86su/Ppfkv7QC?= =?us-ascii?Q?VKrqpO2PApYoBzC/fVFqX2PH+V7Ki00saf75uaIZl8hos7yUGv+wBanyvBKP?= =?us-ascii?Q?CrF1yQ6khmYOmOLIPWfLLHyni3GAKCG4i0xe0PvICIDA4hBei+9hkZ46L12a?= =?us-ascii?Q?vlt2jRUBHm+iNwVyYDSmF7thDyK/JON2umTb6pyEU8PrEVwg5wejcig3RgrG?= =?us-ascii?Q?6SpXCDVZ+UprqQA5MmDsgiKgdOgu0y6JK1/lkp+fuzHGiBT7gu7gM0dXhyzy?= =?us-ascii?Q?XdjUYmqxC3Sq+AO61QIZYHxlIMBYjHQPeMJyxiTK28awJAsmnBDT0FzSo2ul?= =?us-ascii?Q?ebm26vq+oDlGTKheFH44g+87MfF3asNLI2zs7CYU9+32f0aaD0/XMShiBCdr?= =?us-ascii?Q?mk710dy8VK25DMG+uI8VBK0cOb+AaKFD8mOZ12HxfxW5ruEjB6qj7qLYQf0U?= =?us-ascii?Q?LYMl2hKtA00e7qYEgU9sn8enMzZ+zAMVNAnVsOU8e0h7220oTf9Mw11X06wI?= =?us-ascii?Q?mikhPmXUx9YiQf8a2AmdnWcVD/iqHrBiNP14jKkl+RxsMxZurACFwSYUSjZm?= =?us-ascii?Q?qVwEI9YMXKkXoVg5G3MNAUt0diI4yEtG25OgJkYNE8yREfPPvf/9hPTlNLa1?= =?us-ascii?Q?r66rOg5NhpLBgT8xjPeWLAX3ZuCGN39cEChaLAkpBHJMJVUI+cy3RZ2TmpFD?= =?us-ascii?Q?sGssP9vpZo2xcfv4i/WMdYA3Aq4PI7yoRApEOmjlF1gDwu3MXySEIxNzD9oo?= =?us-ascii?Q?YZCNOcDVaEiu5eAWf7929hzOCjVfDHk0oS7KLPS5p0WoughhdP286icNkhn9?= =?us-ascii?Q?2h84CPziaYINW/cAJLnIVPAfButtW42hzhTR6078noYrJstqErxa9CaJYJci?= =?us-ascii?Q?RYVb2fZ3ti37pp30wPykvTBit3ZWq4uLc5ISioB/Hc1CgQFPq4jgvYO9w4L6?= =?us-ascii?Q?+emqcqYTi0WXtE3Yr9eVcp5VzJ2Slg3vcxkidDpHMp+MijO3eWlEkoyA3G4b?= =?us-ascii?Q?ESLKP7FTkDaKZBl58xd9iBdicvM37Adwf8YX5KrdLWlbon0KQdOHb/uxtRZq?= =?us-ascii?Q?JY8WGDTj52faNyBFjALhsb0cc8g6GWv3B9sLkqXHlyhYr0oOx1P0i4X/6+EU?= =?us-ascii?Q?Dsu5IZ8aBCB6F5GySF9406ZUOTCztObGf9iSDSCKRuKpJQWJySWelb25SD5x?= =?us-ascii?Q?o4uaYeYsw51z+PxxDSEV7Q3OPfTAY1lz51AcqVXF5sfLZv08uBtMNijEe0s+?= =?us-ascii?Q?vn6/3dWD7zcoeZZr+c3lM6Un3ocFrxwJMf99JodK2EbGIzCznYRZQ5iG1OJ1?= =?us-ascii?Q?d0X93z+VvEK9EMLxETvF1dGZd8Np+onwmj5LqBwnSRiTG2WWTbrJyqj2VFgX?= =?us-ascii?Q?nwXHtPDHs+ERMd48/nZFZhy6Gt5g4iYzyyVzU1Hj16qz4TsPxGHX1DwAZdKm?= X-MS-Exchange-AntiSpam-MessageData-1: VDTMCgBFo6213w== X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 5deba6c4-399f-4cbd-7442-08decdd766a5 X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2026 07:50:15.7763 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: EFeMZ0cW3VjEjHPC6jV9QWRj0ScS8O5xmqlW1TcK+N+xOvWvaofiedcmntZR/vmgTbIGBPl1V4tWoU8cq4CJyw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY4P286MB7477 X-purgate-ID: tlsNG-42698a/1781855420-4C1CA00E-A956EE7A/0/0 X-purgate-type: clean X-purgate-size: 2006 X-ZohoMail-DKIM: pass (identity @valinux.co.jp) X-ZM-MESSAGEID: 1781855462918158500 Content-Type: text/plain; charset="utf-8" Introduce the initial framework for Device Tree-based NUMA support on ARM Xen. This patch adds the required Device Tree-dependent helper functions needed for NUMA configuration. Note that some functions currently contain stub implementations. Signed-off-by: Hirokazu Takahashi --- xen/include/xen/bootinfo.h | 14 ++++++++++++++ xen/include/xen/dt-numa.h | 23 +++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 xen/include/xen/dt-numa.h diff --git a/xen/include/xen/bootinfo.h b/xen/include/xen/bootinfo.h index dbf492c2e3..ca675db5ce 100644 --- a/xen/include/xen/bootinfo.h +++ b/xen/include/xen/bootinfo.h @@ -6,6 +6,7 @@ #include #include #include +#include =20 #define NR_MEM_BANKS 256 #define NR_SHMEM_BANKS 32 @@ -214,4 +215,17 @@ void fw_unreserved_regions(paddr_t s, paddr_t e, void (*cb)(paddr_t ps, paddr_t pe), unsigned int first); =20 +static inline int bootinfo_get_ram_range(unsigned int idx, paddr_t *start,= paddr_t *end) +{ + struct membanks *mem =3D bootinfo_get_mem(); + + if ( idx >=3D mem->nr_banks ) + return -ENOENT; + + *start =3D mem->bank[idx].start; + *end =3D *start + mem->bank[idx].size; + + return 0; +} + #endif /* XEN_BOOTINFO_H */ diff --git a/xen/include/xen/dt-numa.h b/xen/include/xen/dt-numa.h new file mode 100644 index 0000000000..c4a229bf9b --- /dev/null +++ b/xen/include/xen/dt-numa.h @@ -0,0 +1,23 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#ifndef XEN_DT_NUMA_H +#define XEN_DT_NUMA_H + +#include +#include + +static inline unsigned int numa_node_to_dt_nid(unsigned int n) +{ + return n; +} + +#endif /* XEN_DT_NUMA_H */ + +/* + * Local variables: + * mode: C + * c-file-style: "BSD" + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + */ --=20 2.43.0 From nobody Thu Jul 23 22:29:24 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; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass(p=none dis=none) header.from=valinux.co.jp ARC-Seal: i=2; a=rsa-sha256; t=1781855460; cv=pass; d=zohomail.com; s=zohoarc; b=XIPdHeOn7rl13sYCLo3R5wyMdpWfvQgPAcMP103wZKpmHmI5qPIQGU5V1Pg18BIU0EeZ1LOHPpgCKM6ul5e8tk8DRVHhDetXOOyJIbQVEqHHQORX3ekNpoKTIz9prPrwFpfM1tfiGTA888wJFqLukbq+jXDPrTQrfJ8QwiahA78= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781855460; 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=0gX9ub+anZt6eauwPAi4d+qchhQS98QP4fnLa+KEekc=; b=AJKVWgyaLx8n5J70lCo9hRQ/X6qpMb6/xwVU/xGBOo6FdP/RwCPjydDmXumDYQFzIMQZ/iYMDAc9iyKCRJrr8ihTOABmO9Aqk5yaYoo7GJmU4VITPYSJfsSnfwBzNqxrz48FgBiMXd8Thya9ulI5xxiv0j4LtHdnph4jmfxNz40= ARC-Authentication-Results: i=2; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1781855460295127.66311275110695; Fri, 19 Jun 2026 00:51:00 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1341731.1601995 (Exim 4.92) (envelope-from ) id 1waTze-00041f-EM; Fri, 19 Jun 2026 07:50:26 +0000 Received: by outflank-mailman (output) from mailman id 1341731.1601995; Fri, 19 Jun 2026 07:50:26 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waTze-000401-Ax; Fri, 19 Jun 2026 07:50:26 +0000 Received: by outflank-mailman (input) for mailman id 1341731; Fri, 19 Jun 2026 07:50:25 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waTzd-0003vw-CS for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 07:50:25 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1waTzc-001qMv-PZ for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 09:50:24 +0200 Received: from [10.42.69.11] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a34f4b5-2eae-0a2a0a5409dd-0a2a450bb90e-36 for ; Fri, 19 Jun 2026 09:50:24 +0200 Received: from [40.107.74.114] (helo=OS0P286CU010.outbound.protection.outlook.com) by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.0) (envelope-from ) id 6a34f4b9-5e53-0a2a450b0019-286b4a724d13-4 for ; Fri, 19 Jun 2026 09:50:22 +0200 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) by TY4P286MB7477.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:356::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.139.11; Fri, 19 Jun 2026 07:50:17 +0000 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0139.011; Fri, 19 Jun 2026 07:50:17 +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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=an0SHIvXGtr7PgBhjOpCm8i5z5NMtz2r8h+yUEcwpCu9XhuhbjUTIxvwF26OpN1aUFZ0Z738dMLmxaOotOTRgO1X3P7m3ZVoZ/eCwpeljX8eio17bL3yIrXxoP6s4dznQUNCBJAn+Y33s0gl7CIt6HVE39RV3EHZ38739J0dftorNJcK6fH6yF/Y629GLnoujiorfUWwEVE5hnwgO0ig/HqWDjTJNuyy0jDb8Qrye/zg1zoZfMa3GZv/amNwLuBx7jccAkrYrE7KLN2M4N0V+S9lLG+WiAsHpy53DEiOkTGCe6FsJEPH2lPfNi0INZAwOUNG84Kdhe/ToX/iT9SHwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=0gX9ub+anZt6eauwPAi4d+qchhQS98QP4fnLa+KEekc=; b=cmQjcyKWRQRFWjoZvkN4S0XeHX8iohSPOISRqaNPPySG0tCrZlzqLlhdqhyK9B5GUzWrmQBUcVC5EgOqfbOorh32KwST6/1gtgYbYebxtRyfnDszbjV8Vml+qG8gETXBjz9Gha3alx5Hpv5vjATtoBlEZkktfpQPyxZTBTVcWtt+Kcv1YAX3gwXeBljRYZ9mF/IxrBlEetAC6EB1CJ7dWbHb/qvz7xBwmmRlpBSk2rnF3zPUagrc+pGkwWOgB7dGpaEDJbzfgIX2BhA3FzVBJ9IzyeDqzuBnP2gtF/x+Nz3bHL6Rv6Q6Lt19R0JBntPT/8KrR8sQQgI76zEh3/Oy9g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0gX9ub+anZt6eauwPAi4d+qchhQS98QP4fnLa+KEekc=; b=buz+riui2yTrK0w0MFYoIcvWbk2r6ld6fQBm5wDeOY6EaNgI7j9scnJZ5kwWfva1Hi1aB8RF2tdljSam1eomhWlQ+K9cy8hfz7zByus4Wha/jr9Irp3GmMxvUbSgru6Xy3RKslyWkqpp91bfLrkt0srMpGe6ewToGjMljywrAGw= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; From: Hirokazu Takahashi To: xen-devel@lists.xenproject.org Cc: Hirokazu Takahashi , Andrew Cooper , Anthony PERARD , Michal Orzel , Jan Beulich , Julien Grall , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Stefano Stabellini Subject: [PATCH v3 02/22] xen/common: Default function to get the distance between nodes Date: Fri, 19 Jun 2026 16:49:50 +0900 Message-ID: <20260619075011.377116-3-taka@valinux.co.jp> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260619075011.377116-1-taka@valinux.co.jp> References: <20260619075011.377116-1-taka@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY4P301CA0005.JPNP301.PROD.OUTLOOK.COM (2603:1096:405:26f::9) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TY4P286MB7477:EE_ X-MS-Office365-Filtering-Correlation-Id: 8e98c1d1-6b01-416a-a2fd-08decdd767ac X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|23010399003|376014|1800799024|10070799003|56012099006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: 4p3170YBl8ipIJz+pMUieMBee1JlkZ51b1H3/ibWhAnKdfD4YWoZqx+s1bCGIhPJ9Gd4s7Gc6Ul+sHhKpxpVw7NSrr2f87hJOYuX8IBm01TNE0CU7uAdc2Mlxl2EF6zDA2jAPM3kqWo4raWKdLDWa2tXWs7kfFlXRSXZDJ9fqSYyG4WkkWvk0z8atimhS6IE0+OMZYR57vmUkcvL0Ad0TU0GBlvWwuIRzicNzMDZvA4epD5ViluoTNAa5sNYKDu0DQNhJZdK3Udrr1JrvuiN0GMSOusRWeevkAW/pu0MIpLlGfgqJjDyNG/aoVjsZ+KdS5gsZnNDIMhqXK+ploTteGgWdk/YFVB5ihsENjGH65Q8d7skSPZ9+fEOhHYEn5oV7DFcAwfOkWxMnzSPjRlzezKcyNeZv3NMZiZup3xT9ASCZC6kPn7Z6y7gkuL//hKB6GCmaftZYLBQOURqkfGECVbsrqiOdP62TqiGsxO2jB77hAANLxxhPM3DwjSje2rEdbPohLd0U+dxt+VYKJ8BB8IT+tAtH4MfACPiD1lR58pXH/E9y07199PdZm/En24EUZJwkDspXQJgu563sluhd5R34yW8BP1G+52Dmr/9+p3y9urjuPSl9Wgber790RywU4EjwNkayKMU38TZKdTS+OEKymolfox5n/6mUR1tR50= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(23010399003)(376014)(1800799024)(10070799003)(56012099006)(18002099003)(22082099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?0BNyIUfj2EHDy5KwVIwLOEfbCuCQJRFkxyC6AvKV+BARwYnxkp4enSVvg9E8?= =?us-ascii?Q?ikxCK9jX6CChzPfOfe4g5VWfwOsRUpJ66UcsgVMW68lECHTosvksGp1Fn0SP?= =?us-ascii?Q?9HGJrPRYhAQmMDZdhUdGR7iZchn/WT56+Qod5v2u5OibWoOSWeqT2MCvzALA?= =?us-ascii?Q?RYPjINdmKX5hW6P0gEyFAcRB/lM6UowRRYjFz8deXHYvxaiyhnAw3N7iW5mF?= =?us-ascii?Q?8ERGNNbq9q7zNGAp5x71gQIUi1ekcWnPLC6S3xf5eFnLiaSpzb1yaqgF0KbV?= =?us-ascii?Q?BnQ1BPpWxYsxrcNll47Dgu+f8LRwKJ/UcAW9uT4nKPF1jM/0OsYsNh/VHCgd?= =?us-ascii?Q?y3IeHHpwqTzHxiG5Cd9O0HqiY51m3+te9b3LtldOlOmSedpzYzF3CEy+XpXf?= =?us-ascii?Q?p5TVjosVeaANr40b61i0AGAVkQSLLNTf1w2TyvIJJ+fvXEXTGEXHveOhH49I?= =?us-ascii?Q?0QKRde2/Exbe2tUwjU1zsdQRH4htM3YNTLHWaoG03y1lYsV6HlXOLgTHcL3p?= =?us-ascii?Q?fA9PjGFtfaUe0fJbXjUjRF6y4oklmXKInvlyRmbI2D8hqD1+rU03fhDLNNKX?= =?us-ascii?Q?/kqzrMh+xUJMQR5yRCvtAwjFKQiJoT/nXX7Xj2R9mGWhJU7s03pT5w/NXBgv?= =?us-ascii?Q?BxJgPN8dDFglvfclEZ6q9qK/Hht4BbiQCvUm43FuDy/sKWDf3jkHO2UlB2v2?= =?us-ascii?Q?T6Uxi/01T3HSuJsFfHyKkMQeLOu4J/y/oYlzpDP3nXL8KIixtPMDpcbJQmNU?= =?us-ascii?Q?Sl0YFTgdgh31kii3UajwH9RAXICfZPBhwNzBUj5oDbG6DdOJ5Nj3dwmII0BQ?= =?us-ascii?Q?i4JEUmoKSkIxSA3/uOcTHAJ1pbI3ThfD/lpUUCPIQnBrBdkceWOMv+SyZYp+?= =?us-ascii?Q?+kU61XZEQbMcBV7yHNeH0yDAhy6BCjd5GeBJer4b1jIbe5kthJDylQsGvPwt?= =?us-ascii?Q?QciuoIcbqPlYr1bW2GciH2EGWMEpIRsOLpH+/u///KFPsrM5EIUuJ8f2yCnQ?= =?us-ascii?Q?G3zR3aDJ7d4Zto1k+x4ZC+SjD3IzfbviwkOXjVSX0kTEQAFkAkMS0ZYK5T4e?= =?us-ascii?Q?BPiC2s7mMZoQ2ZcchjSSeNOmkGnpZarcGUNiZI5rj9FrMPhA4jDr4fO+aAn/?= =?us-ascii?Q?zhs+1NC44+AhCBF8QLWDTOyQPnPOuo36TsuRy45BtwxqedpwjDNnfgZBvBXJ?= =?us-ascii?Q?ZT/5bmJ8cLGyev2ZfALkxhIHbeOX8c3d0+9hFXVn1j5t2HqaVAfGpYTVOd32?= =?us-ascii?Q?M+dHEdmHC0RNM9roIkE8DgWcg0ziR+w2V/XmEcFODrUtKK8dyvNEFvS4a3jX?= =?us-ascii?Q?k6lLlt7Z+CgLwiorFfdI6BTI9624igObH338U/8+zTcBRjCMRlBSMYwUSmfq?= =?us-ascii?Q?4q1SknE/ucl9912iUXdoZiNdDwVOv/tCEbmJu1GaXJ122Bysz8NN8cG6+B2/?= =?us-ascii?Q?Vt2oxDCT3eQYzbBgvEDhkIZ2YBAYwantzy+GV6A8UzI2WUdbL0I+P4IMH9ME?= =?us-ascii?Q?kyxeZ4nkBUsLIRo1DotRurI/ieRd5T1t9koqohNzD1R4TwSSFOR4QPWsFQtP?= =?us-ascii?Q?fBCJJKJyTfhPZhMNpsUl0eZsLwTG4aKgUqIo19sX7yeLTnwHiOBnr3Fy4BoE?= =?us-ascii?Q?Bdo9sQ5ZeMMnRSpUnckHnuU1V24xp3C61YB2PqL0hzr3yWT2i0RXt5Skkc9E?= =?us-ascii?Q?+H/u8POHXDthOnfbLYKoN0O+baWz78lq58QHPChXPucxJ2edO1oe181HhMXf?= =?us-ascii?Q?eKe5/BBLE9OtiychkNUKno0hLhWTBBtiZsCGANAhZ+2eeeNpvggmvFdCPDYo?= X-MS-Exchange-AntiSpam-MessageData-1: HoDwtzvc7adK6Q== X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 8e98c1d1-6b01-416a-a2fd-08decdd767ac X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2026 07:50:17.5042 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: kQH+XJUIruYCupwb7EkjkPU7lp2RlGlCrO1/20+uRIXqK80NUsMQmUiFhj+qvgzdPFBJpKbV8Mco5v5hZbVkmw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY4P286MB7477 X-purgate-ID: tlsNG-42698a/1781855424-4D9FE00E-1F3B76C1/0/0 X-purgate-type: clean X-purgate-size: 1974 X-ZohoMail-DKIM: pass (identity @valinux.co.jp) X-ZM-MESSAGEID: 1781855461123158500 Content-Type: text/plain; charset="utf-8" Provide a fallback function to get the distance between NUMA nodes. Signed-off-by: Hirokazu Takahashi --- xen/common/Makefile | 1 + xen/common/numa-distance-map.c | 19 +++++++++++++++++++ xen/include/xen/numa.h | 2 ++ 3 files changed, 22 insertions(+) create mode 100644 xen/common/numa-distance-map.c diff --git a/xen/common/Makefile b/xen/common/Makefile index 6018e25614..062f9ab72b 100644 --- a/xen/common/Makefile +++ b/xen/common/Makefile @@ -32,6 +32,7 @@ obj-$(CONFIG_VM_EVENT) +=3D monitor.o obj-y +=3D multicall.o obj-y +=3D notifier.o obj-$(CONFIG_NUMA) +=3D numa.o +obj-$(CONFIG_NUMA_DISTANCE_MAP) +=3D numa-distance-map.o obj-y +=3D page_alloc.o obj-y +=3D pdx.o obj-y +=3D percpu.o diff --git a/xen/common/numa-distance-map.c b/xen/common/numa-distance-map.c new file mode 100644 index 0000000000..73344f7f33 --- /dev/null +++ b/xen/common/numa-distance-map.c @@ -0,0 +1,19 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include +#include +#include +#include + +#define LOCAL_DISTANCE 10 +#define REMOTE_DISTANCE 20 + +/* + * Get the distance between node 'from' and node 'to'. + */ +uint8_t numa_node_distance(unsigned int from, unsigned int to) +{ + if ( from !=3D to ) + return REMOTE_DISTANCE; + return LOCAL_DISTANCE; +} diff --git a/xen/include/xen/numa.h b/xen/include/xen/numa.h index f6c1f27ca1..18c22d3d30 100644 --- a/xen/include/xen/numa.h +++ b/xen/include/xen/numa.h @@ -128,6 +128,8 @@ extern bool numa_update_node_memblks(nodeid_t node, uns= igned int arch_nid, paddr_t start, paddr_t size, bool hot= plug); extern void numa_set_processor_nodes_parsed(nodeid_t node); =20 +extern uint8_t numa_node_distance(unsigned int from, unsigned int to); + #else =20 /* Fake one node for now. See also node_online_map. */ --=20 2.43.0 From nobody Thu Jul 23 22:29:24 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; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass(p=none dis=none) header.from=valinux.co.jp ARC-Seal: i=2; a=rsa-sha256; t=1781855475; cv=pass; d=zohomail.com; s=zohoarc; b=crzAZW050TPRh1M5yV+r3hQrr5+yAzs1Taz01zHOAN0EpYWfg+na82OnLg7wurv1YYKe6d0IIj1KQHOKj1b60anhcB2kv9Jim8913gb9fPkwPZksVLW5E08L1kze4kL7m8nbRYAo3KRKUfomGyolVsATM7OB3m2wP+4FkdfYXKY= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781855475; 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=61LMVP4jRTDvsJV5c8jFg3V5iNl05Shx6hWCtT3eNHQ=; b=jzdjBuvnS338q1KJncOqQh/1A3QVZS4TpdVZUHtLIOheoLPDMC2bIpVVbDAi1pnZ5Y0WBC9+b8dZrZuC5Ys39xsfg5JzGuas08Yv2n+TOrz9CTMnlb2OGTAyW6eexbdp8ysfWiDo+t5lh4x3I4iTX/qxq6AAsL09eCgeWpI7JIA= ARC-Authentication-Results: i=2; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1781855475586627.6368429568778; Fri, 19 Jun 2026 00:51:15 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1341732.1602008 (Exim 4.92) (envelope-from ) id 1waTzf-0004Lr-Ly; Fri, 19 Jun 2026 07:50:27 +0000 Received: by outflank-mailman (output) from mailman id 1341732.1602008; Fri, 19 Jun 2026 07:50:27 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waTzf-0004Lk-It; Fri, 19 Jun 2026 07:50:27 +0000 Received: by outflank-mailman (input) for mailman id 1341732; Fri, 19 Jun 2026 07:50:26 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waTze-0003z1-GI for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 07:50:26 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1waTzd-001qMv-T8 for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 09:50:25 +0200 Received: from [10.42.69.11] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a34f4b5-2eae-0a2a0a5409dd-0a2a450bb90e-38 for ; Fri, 19 Jun 2026 09:50:25 +0200 Received: from [40.107.74.114] (helo=OS0P286CU010.outbound.protection.outlook.com) by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.0) (envelope-from ) id 6a34f4b9-5e53-0a2a450b0019-286b4a724d13-5 for ; Fri, 19 Jun 2026 09:50:25 +0200 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) by TY4P286MB7477.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:356::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.139.11; Fri, 19 Jun 2026 07:50:19 +0000 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0139.011; Fri, 19 Jun 2026 07:50:19 +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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=i+EGGOtU64Oob4wpmwj/yUyLfzeQNMcmg/FrDHQglIZYTROQUHRep4bqQye0W7OV1EC+k0Vf0xQI/y+XWxLPs0q9g66mCcdz/2/YdWEmisp0nxtKg2Ks6bh+eQNCZP/LTZAMZCApAtl8UyHMuWf1RpWhcUw0yC8rY49A4D7sDMUli7JmhysgU+nBtLzDrnIU8Y4gJA7ri2bx73Cv3awM/eMdjZ2w80FP4nsAQwdHGW/W8zQZ5ISC9C6GJHzo/bGpEakV+jGpp/Y5e/DB7WCQ0oN4AmNCo70sVUEDl9TTk9t32bl8Ak9NhgOWa/x8bRSj0HIpVzKjpzf0tCCQX7oeXw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=61LMVP4jRTDvsJV5c8jFg3V5iNl05Shx6hWCtT3eNHQ=; b=bJ4OE3UhNKTtg2QKkXAGsOi7Zbk9Wy6U8LrKZ55dNCDgdZHmTBI2piCj+I1UMV0jkJ0n4ruUgJH0J2uHk/ZyFuEcPlCypyE614Pnki0vq3rSTvFKc3UyUprwZZ536xhbJqSbAIH9n02k+q71+ejnWARivQFK593RudXMA+lvjM2f2LHKLeCcrBOFXka/PJNIG32ymYRC975gUJgWLznl3M5dJqKQI8NzWCwQ/pAxmNCoA2LzVc4VZTkwcSXQd3o5oHV6NvjVVpd/+nVUbfs1YORVTAwQRpcUl5mPFuZqAW6YtWjSV4IXnzcK9ZZw1besu6x1KNMjFNQeUlZxeOfD4w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=61LMVP4jRTDvsJV5c8jFg3V5iNl05Shx6hWCtT3eNHQ=; b=lbt9CRVaMUKJJ5bmrRSnJ9c15DwfEfubi2ZoGeRxM+EvkSgrci2t8AskiM6KBT1+rg4lEcHOT1FTgtUah0LxPXwmhItdlCKrsWdmWxzKG1TNGuu3Qh5AEfrSqr1WhurEaCdZJ2U+1TeQgrP26MFCG0cVUEkKsWGZ+P6CDM02Oms= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; From: Hirokazu Takahashi To: xen-devel@lists.xenproject.org Cc: Hirokazu Takahashi , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , Volodymyr Babchuk Subject: [PATCH v3 03/22] xen/arm: NUMA helper functions via Device Tree helpers Date: Fri, 19 Jun 2026 16:49:51 +0900 Message-ID: <20260619075011.377116-4-taka@valinux.co.jp> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260619075011.377116-1-taka@valinux.co.jp> References: <20260619075011.377116-1-taka@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY4P301CA0001.JPNP301.PROD.OUTLOOK.COM (2603:1096:405:26f::12) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TY4P286MB7477:EE_ X-MS-Office365-Filtering-Correlation-Id: 20df154f-4776-4778-d73c-08decdd768ba X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|23010399003|376014|1800799024|10070799003|56012099006|6133799003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: ATnHAXa7q3aDm0W/mJ9pUI5HXdQG1H0PaX8NcsQBrY5G2Qa0YT2sIClmVEhX2cijc/fT2gS4/AvKBRsOauoz4FjlRb3+W1PzuVT+qyc8YP1N6Jc5cdju+hP7ijK94sDsMueAFv6PNKRhiHX1pzGRDyPfAqfkaZcpj/QDQuW7Xp5orAA227K4fuNdAMQTtr4BMs//PlrYhzFa8BUWx5nlWhpO69X/ooVXEKTgYfbheCvWnkLn40a6Ulh7rzqkaOXoEmNSxkPqjr0KiPiS5ZR0O56oAclniXxVwMJM4erM1o6YvJPZwP9MGyaz21IRVizODSNfkb4v+SLCJ2t757VX2xaGRiJDcadQU/b7Dn/UeUL2PWfCt8O0TYcF2lS5NNLUz7NQZwhoBsdh+P/cz1AooozEzBBtQYtA8K+8RS+yYklZWBw2U0/kRA3xuiuxnh1ItXHqHQ0VICzwApn2U8M8ECI6/RNbH+jKMWQAHT7LV7ow5WkUteX3m2nZZPZ6KzTsgTRXE9je1gJQcMkbRV1I0Cz1sw+nHgTbu7sb51rWfr5XQLTM7Xc0+49/ikBXsWrjR+KVGQrpQnu6RWK4I9iFrui0w0dA4erXIb8EDW4JfQRsSjsdi5dPX6+CmSuCbWrsiWnNbdNEJTPXagiZ8KE6hJq4Zax3qWi9DewsQbTZ5hQ= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(23010399003)(376014)(1800799024)(10070799003)(56012099006)(6133799003)(18002099003)(22082099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Rdim2DioGZvTQCeaPH2lEzySHtWZFYcJ5AAQz+LBAOHdNHCsHpKeFvP1jSaG?= =?us-ascii?Q?qK3MlgWOFiG3E1Smu9uljH+89VYtQSHJVKrmyAl93pfbJP//ISJV4latl1c8?= =?us-ascii?Q?RUGW7eJloZhSA3Xddme3MkJ1w7og+9lUG5TKvzhDoy/v8MfdcHJRHj4uBj9Z?= =?us-ascii?Q?rAB488CUJZMVBxO935au3r63WoZPETFxdBzHOABrXuEZvU1H5C+/uC0i2CR9?= =?us-ascii?Q?gN6i7iu/44W8+lRyDvhG6hB0N1vk2netNHM2YUzGV5Cl8n2NeXmNgPi5DkLA?= =?us-ascii?Q?lT/u/gbkGLIYYbVtjiQImuJQm2H1Jo+3T7AGBcpp68wnyiQAo3z1p3IOj8wO?= =?us-ascii?Q?EEms6+x9voXk1VMIMDiROWfFfzjV5Rls95gsFsI1YZZIOUpK5NM8VFtLbPgk?= =?us-ascii?Q?rBT6c02hj/2NCaLLc08QxEt4hg73tEoa8TXn0PQKvHEtE2oBjE/GVOUxPTqd?= =?us-ascii?Q?ewOcGa74hQxUHfhnHkzwQ7JHNSjOQ+eSoZXD3vGqyrdJorgiiDGgZp3xZrPK?= =?us-ascii?Q?P6x5EdJpXbfEeoZ2kPk16HJVASQjvXa4EQCVkTZ5LjYKfuH8iuNLVaAV2+VU?= =?us-ascii?Q?Z0L/4fr2qgURUvFnFhjkRWY4SjJ6TQwmnZofk8pOch6SeDbiX2T6wnHqCHcJ?= =?us-ascii?Q?q6v1lAfKMDa/JRXEb5hPqmZGSSE3sPtmabrkY/oO2GjakuYZsqqb/pFSV/XD?= =?us-ascii?Q?DINDZOLMD4GlRLXY2cm9bmECuvNpQW0X4IMVueBcMuO2UVlyrwHewQhHFQOI?= =?us-ascii?Q?1P1mwZaOyW9htjVzcXkfuJ8T7pZ31uFlqniRt87FXNpL0m8d0zozj6/CdIJV?= =?us-ascii?Q?Enn1EKZ7hJu0SxEZ2jN/XE924di8ZOEPji85nsiV2vOao/Pvx9Mk/pApZseZ?= =?us-ascii?Q?xaz/wgAu5yzVkEO3zIed3283vnuBFPNUNjo2GokDqTCdta/nFfmkd1s2YkrJ?= =?us-ascii?Q?/mCjtCNw/P+hgYl6ZFW4z026tmU7THBgpb4jnGB9O/MG5tRG3Rd1gBB2O0Kq?= =?us-ascii?Q?mpsQrgYzsIUYg0WrzIxBeLiUdHAlipS9WYwGjQxR7yK8THuxfjNLCC9qqoBJ?= =?us-ascii?Q?SweC4dlBYZPTcO8XR/QCTfNLh8AWH9cBZm9K0bbXXKTuEB6I6sVdTbi3Q8pL?= =?us-ascii?Q?JW5mNdpuB/p6tuKtBudvSlZDfRTYw+OArN8YsRDRtnUAG15jsv9iAEATIdb9?= =?us-ascii?Q?Fh+HbDskTY8P9b5zeG6MGgVNtHcVkHLhjdqKwjbQPY533yJVpzTLAqe23ARy?= =?us-ascii?Q?kHMvZuaGAkfCEk30BLcy7RR1L/xEFigEmGhtMIfA5SfxDlAfoinCRSNdEPMX?= =?us-ascii?Q?1qKUAcw5i1DR9woESvI7PS93yetbzxY1Us9pgnCH96brgRSZK4ieza8O0mAl?= =?us-ascii?Q?W2LfVIcVHxsZSUmw2wcjKYCP7Wz2uwAvEKt7b/kLJP0kzU+grYMnPMkwJzmB?= =?us-ascii?Q?0XL9sjBbGnyXBq1Lig7sKhFq0+yDHzkFVD683XTlEx90WSKAeBJ/jRTakAVi?= =?us-ascii?Q?f8L8X3LDcKWyuS+lr2UkoV+2RQMA9ytgtJEfDpHWBoGX7L/5R5HdLh9A54qx?= =?us-ascii?Q?NFloBB6AtVfyg/F2PNytuZVTiZvw5AmW0u/KqqCpI8oyexpm8OPw3ySxFLhL?= =?us-ascii?Q?4DHfXWO7hJIGPr1DwdWFUjENOah7W7BII6qIiqk9Fgv5PW4MHZJGHhOAcV5E?= =?us-ascii?Q?MEv0LETmW0glzBabjAkZo9wQHMYReHNcm9MMCgvjJzzi4jscLUzSK6XOFOGS?= =?us-ascii?Q?OUzxOdDnGmmEXswkGXwG0RO9pykl/zw9Ah0xr54c6WAOzGZ1t8O2Qokr9cju?= X-MS-Exchange-AntiSpam-MessageData-1: nBxzIzJt966/cg== X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 20df154f-4776-4778-d73c-08decdd768ba X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2026 07:50:19.2859 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: V36CT44LETdGVdndFEjqWdFcvbQej//FefBYDLmmQUZSemfX+ra9B+BM3b9fw5CJ4QDxy9GJ7Uwm+7t4QQsdUw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY4P286MB7477 X-purgate-ID: tlsNG-42698a/1781855425-47DE800E-A0ACCF41/0/0 X-purgate-type: clean X-purgate-size: 2685 X-ZohoMail-DKIM: pass (identity @valinux.co.jp) X-ZM-MESSAGEID: 1781855477220158500 Content-Type: text/plain; charset="utf-8" Implement the NUMA helper functions for ARM Xen by invoking the Device Tree-based NUMA helper functions. Signed-off-by: Hirokazu Takahashi --- xen/arch/arm/Makefile | 1 + xen/arch/arm/include/asm/numa.h | 19 +++++++++++++ xen/arch/arm/numa.c | 50 +++++++++++++++++++++++++++++++++ 3 files changed, 70 insertions(+) create mode 100644 xen/arch/arm/include/asm/numa.h create mode 100644 xen/arch/arm/numa.c diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile index 84c4062b30..10d20e3a84 100644 --- a/xen/arch/arm/Makefile +++ b/xen/arch/arm/Makefile @@ -51,6 +51,7 @@ obj-y +=3D setup.o obj-y +=3D shutdown.o obj-y +=3D smp.o obj-y +=3D smpboot.o +obj-$(CONFIG_NUMA) +=3D numa.o obj-$(CONFIG_SYSCTL) +=3D sysctl.o obj-y +=3D time.o obj-y +=3D traps.o diff --git a/xen/arch/arm/include/asm/numa.h b/xen/arch/arm/include/asm/num= a.h new file mode 100644 index 0000000000..8c46048ac8 --- /dev/null +++ b/xen/arch/arm/include/asm/numa.h @@ -0,0 +1,19 @@ +#ifndef _ASM_ARM_NUMA_H +#define _ASM_ARM_NUMA_H 1 + +#include +#include +#include +#include + +typedef uint8_t nodeid_t; + +#define ZONE_ALIGN (1UL << (MAX_ORDER+PAGE_SHIFT)) + +extern bool numa_disabled(void); +extern unsigned int numa_node_to_arch_nid(nodeid_t n); +extern uint8_t __node_distance(nodeid_t a, nodeid_t b); + +#define arch_want_default_dmazone() (num_online_nodes() > 1) + +#endif /* _ASM_ARM_NUMA_H */ diff --git a/xen/arch/arm/numa.c b/xen/arch/arm/numa.c new file mode 100644 index 0000000000..1fddf7d15b --- /dev/null +++ b/xen/arch/arm/numa.c @@ -0,0 +1,50 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Helper functions for ARM NUMA. + */ + +#include +#include +#include + +#if CONFIG_ACPI_NUMA +#error "ACPI NUMA isn't supported yet." +#endif /* CONFIG_ACPI_NUMA */ + + +bool arch_numa_disabled(void) +{ + return false; +} + +unsigned int numa_node_to_arch_nid(nodeid_t n) +{ + return numa_node_to_dt_nid(n); +} + +uint8_t __node_distance(nodeid_t a, nodeid_t b) +{ + return numa_node_distance(a, b); +} + +int __init arch_numa_setup(const char *opt) +{ + /* parse "numa=3D" option */ + return 0; +} + +int __init arch_get_ram_range(unsigned int idx, paddr_t *start, paddr_t *e= nd) +{ + return bootinfo_get_ram_range(idx, start, end); +} + +bool __init arch_numa_unavailable(void) +{ + return false; +} + +void __init numa_fw_bad(void) +{ + printk(KERN_ERR "%s NUMA info is broken.\n", numa_fw_nid_name); +} + --=20 2.43.0 From nobody Thu Jul 23 22:29:24 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; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass(p=none dis=none) header.from=valinux.co.jp ARC-Seal: i=2; a=rsa-sha256; t=1781855465; cv=pass; d=zohomail.com; s=zohoarc; b=Lhv/wd5hbyRQNAv3S06GdbYzOu4Rl9+FEszXSaBRQGOkyqMvGEzJ6adGaKQp3Du7ZHTK033R7Sba3faxDl7zlRpjSBsPVgwRGz1I4AQJRRw3Y4Nu8PQaXPCpgww9uScFyEilfYmV3h+GGRfmD3gWza4DQowpcrZ/p/fNuvcaxIc= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781855465; 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=w5eM+J/7ubhVIxsE8BzSDXPV5iMSGeqFPP4HDzWpfNc=; b=asfH32V8ZJY17H8/bpTc7W17lTRUoTuf9Ba0OaUi1hsqXD7foskf9oAgHEhJaFDkVHnm9BfbqqDK8aG4CLjSlwEeqvM38c/NJiBHGR4AQK3aYsf1wO7mZtCAkCFPWECVvI+nUWQ40upz6UHtbpp8sK1PENCdeI167S4QyZ2NFo0= ARC-Authentication-Results: i=2; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 17818554652484.504386462904904; Fri, 19 Jun 2026 00:51:05 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1341734.1602026 (Exim 4.92) (envelope-from ) id 1waTzh-0004mG-E6; Fri, 19 Jun 2026 07:50:29 +0000 Received: by outflank-mailman (output) from mailman id 1341734.1602026; Fri, 19 Jun 2026 07: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 ) id 1waTzh-0004m9-AG; Fri, 19 Jun 2026 07:50:29 +0000 Received: by outflank-mailman (input) for mailman id 1341734; Fri, 19 Jun 2026 07:50:27 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waTzf-0004Lh-LC for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 07:50:27 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1waTzf-001qMv-25 for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 09:50:27 +0200 Received: from [10.42.69.11] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a34f4b5-2eae-0a2a0a5409dd-0a2a450bb90e-40 for ; Fri, 19 Jun 2026 09:50:26 +0200 Received: from [40.107.74.114] (helo=OS0P286CU010.outbound.protection.outlook.com) by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.0) (envelope-from ) id 6a34f4b9-5e53-0a2a450b0019-286b4a724d13-6 for ; Fri, 19 Jun 2026 09:50:26 +0200 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) by TY4P286MB7477.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:356::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.139.11; Fri, 19 Jun 2026 07:50:21 +0000 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0139.011; Fri, 19 Jun 2026 07:50:21 +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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=MMl72c6ps+r/cVCHAoXLcuPm+HSclKf31FELp8VfbkOSVn2WZaunYDHeEf/ugXrYf8GWv5HyAiehkshaix1JsUmzzZ2Gd2Lyc/R+kICav7/l+rCRVXYgbNLFGePlFX8yB7hVT5WyLG3J7VlU9KdLaTQQK0+533AfiLrdUCewYd6I/tYf13Fb3aVhdPbJY5IYNDn9Q3hiphlvf25JR/tX8K5y3M2VAbWflZji5R2SKQFMaq8574kU+Nqu31Cw3IGIbQeIr6nqG7E6NOrDivoQjtG4cSQoGjuZ9kkqGCcw1N/paqnZ8pKUhm1FSuYPXhZPhjmapFVds+DauoJlkLPbIA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=w5eM+J/7ubhVIxsE8BzSDXPV5iMSGeqFPP4HDzWpfNc=; b=dLxwv708/wci1AG2ZfnMcFk7QWwhzIe3VeC4wxme3/Tsw9L292eBcXx0g3PSugR7Amu/kO6QJ8zlYZuOVu51SnbIUOpN89V6q7FgcScRGWAMVxHNm0foizAQAk7Z8eqnqy7ExpGnhwF4Z6YXqeWGFcwug7cSNUc+m3P+iAOYcpKG9LkFaDUypSNVZVcqIrQaqgGW663H/5R3LfJiP24XiqxZDSqmnhWY6jNDyo9HfSzfNkfrHp0qBxyvLlwrlw3NhEduoWOBOQghbB+IRFgz9j3ayx9n+8o43MEgx005mCSTmXZqKzmkMVUpODIgnI/aovV6+ESYRqdnSuH+snBuAw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=w5eM+J/7ubhVIxsE8BzSDXPV5iMSGeqFPP4HDzWpfNc=; b=JwKnloTY5PgglkuLM3MfLoCMbAjgJuANs4F6jUkZJe790giFsdZPkOhQbPpqTmvEam0UXxbzVq1JDoYQSOhnZCe0E2Wq23Fk2wd4Mk+9P2c3yPjLzS8omJZ/kRKuNjvo9ae7mu8GhlyVzaDvYJUHrmC+K5FdYfwOTy9EB2w9hKw= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; From: Hirokazu Takahashi To: xen-devel@lists.xenproject.org Cc: Hirokazu Takahashi , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , Volodymyr Babchuk , Andrew Cooper , Anthony PERARD , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= Subject: [PATCH v3 04/22] xen/arm: Introduce CONFIG_DEVICE_TREE_NUMA config option Date: Fri, 19 Jun 2026 16:49:52 +0900 Message-ID: <20260619075011.377116-5-taka@valinux.co.jp> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260619075011.377116-1-taka@valinux.co.jp> References: <20260619075011.377116-1-taka@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY4P301CA0008.JPNP301.PROD.OUTLOOK.COM (2603:1096:405:26f::7) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TY4P286MB7477:EE_ X-MS-Office365-Filtering-Correlation-Id: 738610e7-29ec-4546-59b4-08decdd769b8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|23010399003|376014|1800799024|10070799003|56012099006|6133799003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: nGEy/KVecagurHdckKhrKmyUOcBwP8af48/iYIM/ACd8bdul+7133RrQj03aN7IMOFhxgw1tGO0UfSjWo0ZFU1SUPcJ6IYAtqmo/YOta9qnGlUSQ/m5gCGrJQXmVvmnd2RlPro+GTzWNtxubNUE2+3RG5rgn/RyS4TIuTTNWHiOnfbLs065qLm5idcRyoLL2NFdMkWEGeF5mQGTBI/1ufrLvD/HqgQJ9QkhakNlT8xHBtO7dEriWHyPDuaG2UCBtIwJ0WIK3356SXr1E4LWy8MsMG70RQzEHzMN6hiBhgEMA2PEKve3guNDntMXuxqoM95n9NWZ3RwaLgl/3uhmjcklKE6n0eLNsFd1lYc2qu6buopSUO1ifb42XvLhGEo6c4bBSqWpwF+09DSgxLZJDWFTG2X2FCFD+DoyUALUXgshqUjeqRrFtBMWBOxRU37bMWeqvq4mGWV1ReMt3//5QIf68DwE7lfHRsZ01e5p21VgGkmOs0jpuv7BGQH2zkrwlxXLJsAWzqUEs4KKL8vKVJFxB5qfMGidAwtPM4CPgyawDXgdRG6hwMGzLZaf72wIPArBxrNADCcwO8cLJdAOOYBmkFl0HErT6QR/rSsyVYUhuvxPEIobx8IiUS2avy88xpXGspdTZSjQWsf9Or4S/YO4bndcKF1SLDX9XVdbExOM= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(23010399003)(376014)(1800799024)(10070799003)(56012099006)(6133799003)(18002099003)(22082099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?mGR3LdkEftpm3Gg6UZfsGOMQlilKp/eWwS9WPx4Lj0VBxI3wREeCxS1c412Z?= =?us-ascii?Q?xmlk8hTtD3zQTH+R+mkeRceqslg0go+yHQ3lhRE/k0Rc/0JsKOdSPnO6pYxg?= =?us-ascii?Q?RYDlLKjyM8BiYmowDT83eVAW3gIWWEj5tglfQmX5Q0dWttQFhsm0L1G6fcKn?= =?us-ascii?Q?SnRRnrvY12z/PXptCckzJWR+AEFCQvGUL1kG6De7XlyqfU8pxX6ZjgSkOBF3?= =?us-ascii?Q?AN+OTDKRudiHIIlfAdseea/UEXtFAG9OzcrXuDgSSARCpJXgmcA7Db+IB17K?= =?us-ascii?Q?bCn8S+7CFO9gGChFhHZSWVYO4ABH5Y+qaHvkAuIb1tyYKoMYEHHFZazF7b3h?= =?us-ascii?Q?bhgNGc9HjATjm/nDtcQNJmTOCRcYBqK975j863tVum6jv3nx31TDfx+vk/BQ?= =?us-ascii?Q?JdqhtFeBMJ5MzeBND7CrffAfQufv7KdAgnZLtBXvqx/3FbABbCd/IgiYSL38?= =?us-ascii?Q?/JEFoMmFWjO54uPhhiOOlnzBhrBEtncHA5KA09kQUa29fttE1YPiuHqWAEwW?= =?us-ascii?Q?yAMgZOFoMgJZXiaUWJMz6Wp2o5EmsErWVkYhwKokJf4DspSyfHNxuGeL4q7/?= =?us-ascii?Q?HLZ98IgVYUYvRaScMaZ3DFG8bbCTgLJI7e3OSsXEYbjS0uh8vutG21eQGkEd?= =?us-ascii?Q?gB1J5sAH01N6bZv9lT6Mnhr/l4JitateAUNnV4sxnKs0lX124QtF9H1KsOV/?= =?us-ascii?Q?ONPQOV6B0WQrYBdcJ/Ilk1Tl2yJ8lMJJwYKVRFI2/Fo/NvTT9++9dTSBlsau?= =?us-ascii?Q?tuzLKeQuofBCEpPU0Bw55tyyi8KPowGyeFaAecoDcAVDnH4tJqdnnRizRoXx?= =?us-ascii?Q?QRH5QcbBPirGL4/t/KJ1pAAzQvwCtEXmznIjPY/LD/NkuzfziWeJAyapiYSm?= =?us-ascii?Q?exHEpA8ALITqNPpmdRoUdHWPSbjVl6AgkiwzjxHEj2/Fx5VMrH58DQvVzITw?= =?us-ascii?Q?DjsJ6QvTaSkIrW7WniIYyYXiqBTd0tgp3ZFD7irxlv2OLmOXWFF71RWFqxT7?= =?us-ascii?Q?jsQcvjmANQYhQSWtCvLDRWF6dzzfa1bHx7NknjwvBptC/V03GUFEbDlk6tBU?= =?us-ascii?Q?4mWiOi2+qtjicbZf8B0S+PwL8PIVt3LyhnwvEpmeUFtxwmlQe8hJi75dzdGV?= =?us-ascii?Q?KJa9My+pxQwSPPJZvCPNYacrfjpCU22tVuuqVNm2zFJkLNXWxKZvRDD9piFc?= =?us-ascii?Q?Ht4GqxtN+wV7NwQNQStztJelZ6CuWjyFc5uEo11jhsS1KEbMABaNxA9Qdvua?= =?us-ascii?Q?K8fmZ5lkzgVWecGtl3JaY7CkAThrHkImF/iNZaT+o/MITb18jrYXigDv21Bg?= =?us-ascii?Q?mQqNi7OUI5tiU4G+rkSwbTll8E1aHmien9w7SQAHOFNiBJrDrSBUSOw3BSMj?= =?us-ascii?Q?CFw9tANkY2495qRkL6cjc7qchuxQY6kotNqB3wwePM0TVZ/3M+TwedwncQaq?= =?us-ascii?Q?FHPFigPxDa8b8D6go+t1NEDMBdgrSlTGTNtJczFSvjdLqoeyRX3KZk5V9akQ?= =?us-ascii?Q?zE5BsfTB9nIGY/etblGtFqJ+zNLh24atZA8QRqNEGgZaeUzmRhBrEhrwym2q?= =?us-ascii?Q?gpvcmC6CmHYm/ur3Tk+2PPOIC8A/L8QukBOWdxPozSeg4o2ayS+4Vg29+0Or?= =?us-ascii?Q?8PCl8qbBAm/q8Q+ujwXDomOY6i9/x969N19bVEx45sW4rooTq/bGo9cGlphw?= =?us-ascii?Q?dRosWbkImLPl832cnNB0UySvEh64+oKvASdfNQ88SScIwGmF9DlVjTJ+BrZV?= =?us-ascii?Q?Y0WlBH7dv6DMzJePRP6OOpY9S4CpX555S8IxO8FlmVVKerp3jTwCEn1GUZ33?= X-MS-Exchange-AntiSpam-MessageData-1: d3tPqaxDIDQ53A== X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 738610e7-29ec-4546-59b4-08decdd769b8 X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2026 07:50:20.9269 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: FEjo9cL38WPuog/p6MeoZpOctEdDTikALiscNUNAAj8g3YSjh2RZz/DM2g0GrDAnim8FquC19BgjKGoHWNYJ5Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY4P286MB7477 X-purgate-ID: tlsNG-42698a/1781855426-473E300E-C92B494F/0/0 X-purgate-type: clean X-purgate-size: 2840 X-ZohoMail-DKIM: pass (identity @valinux.co.jp) X-ZM-MESSAGEID: 1781855467128158500 Content-Type: text/plain; charset="utf-8" Introduce the CONFIG_DEVICE_TREE_NUMA configuration option for Device Tree-based NUMA support. Selecting CONFIG_ARM_NUMA enables CONFIG_DEVICE_TREE_NUMA, which in turn automatically selects CONFIG_NUMA. While this option is currently restricted to the ARM architecture, it is designed to be selectable for RISC-V and PPC in the future. This patch also includes the necessary compilation fixes required when building with CONFIG_NUMA, and creates a single fake NUMA node to ensure Xen can boot successfully at this stage. Signed-off-by: Hirokazu Takahashi --- xen/arch/arm/Kconfig | 8 ++++++++ xen/arch/arm/setup.c | 4 ++++ xen/arch/arm/smpboot.c | 2 ++ xen/common/Kconfig | 8 ++++++++ 4 files changed, 22 insertions(+) diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig index 5fa89fcb24..c0c03cbd47 100644 --- a/xen/arch/arm/Kconfig +++ b/xen/arch/arm/Kconfig @@ -99,6 +99,14 @@ config MPU systems supporting EL2. (UNSUPPORTED) endchoice =20 +config ARM_NUMA + bool "Device tree based NUMA support (UNSUPPORTED)" if UNSUPPORTED + select DEVICE_TREE_NUMA + help + Device tree based NUMA support. The "numa-node-id" property in + the CPU and memory nodes of a Device Tree defines the NUMA node + to which they belong. + source "arch/Kconfig" =20 config ACPI diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c index 6310a47d68..c0202d9ff6 100644 --- a/xen/arch/arm/setup.c +++ b/xen/arch/arm/setup.c @@ -351,6 +351,10 @@ void asmlinkage __init noreturn start_xen(unsigned lon= g fdt_paddr) /* Parse the ACPI tables for possible boot-time configuration */ acpi_boot_table_init(); =20 +#ifdef CONFIG_NUMA + numa_initmem_init(0x0UL, 0x1UL << (PADDR_BITS - 12)); +#endif /* CONFIG_NUMA */ + end_boot_allocator(); =20 /* diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c index 7f3cfa812e..d1651fe7dd 100644 --- a/xen/arch/arm/smpboot.c +++ b/xen/arch/arm/smpboot.c @@ -47,8 +47,10 @@ integer_param("maxcpus", max_cpus); /* CPU logical map: map xen cpuid to an MPIDR */ register_t __cpu_logical_map[NR_CPUS] =3D { [0 ... NR_CPUS-1] =3D MPIDR_IN= VALID }; =20 +#ifndef CONFIG_NUMA /* Fake one node for now. See also xen/numa.h */ nodemask_t __read_mostly node_online_map =3D { { [0] =3D 1UL } }; +#endif /* CONFIG_NUMA */ =20 /* Xen stack for bringing up the first CPU. */ static unsigned char __initdata cpu0_boot_stack[STACK_SIZE] diff --git a/xen/common/Kconfig b/xen/common/Kconfig index 5ff71480ee..bfb3a3c007 100644 --- a/xen/common/Kconfig +++ b/xen/common/Kconfig @@ -188,6 +188,14 @@ config VM_EVENT config NEEDS_LIBELF bool =20 +config NUMA_DISTANCE_MAP + bool + +config DEVICE_TREE_NUMA + bool + select NUMA + select NUMA_DISTANCE_MAP + config NUMA bool =20 --=20 2.43.0 From nobody Thu Jul 23 22:29:24 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; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass(p=none dis=none) header.from=valinux.co.jp ARC-Seal: i=2; a=rsa-sha256; t=1781855470; cv=pass; d=zohomail.com; s=zohoarc; b=XD4WFl0tP5fTQ3Ks/KOc1YS4kw3ToiHDNi1aqa6Rzoh2XDFiDIftkzSGz4C6UoQq4Dwgx+HHQm+8X7hmdJ45nvZjW26ddcT73ool1tL7LzhiZBPyai2CQWXbqHLWglepBT8uuvAD2kKzcHutmAvXEqSwTNWS/xaJCC4/98HS54M= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781855470; 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=VKjclw5V9jrzqLrNd1iwHbNMgBC1nxy9z/dSq/sUNcg=; b=kRJ8U7aixppVxH0OMc7QGVkcuJV8Cr4NtNe6/Y1V5OCKINIoM73uWgBX/VeGsmNxayuK0k/USd+jrqV+MSHnrHBwuoO6PVN1vu4NczZ3NVEKho5Wevxr3iC+AVyT4q4xzbpVqqoHnECmUiXVdrpx4wUiO7m0NCiVVwrpV7IL3xw= ARC-Authentication-Results: i=2; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1781855470787324.5465466715244; Fri, 19 Jun 2026 00:51:10 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1341735.1602032 (Exim 4.92) (envelope-from ) id 1waTzh-0004pJ-Od; Fri, 19 Jun 2026 07:50:29 +0000 Received: by outflank-mailman (output) from mailman id 1341735.1602032; Fri, 19 Jun 2026 07: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 ) id 1waTzh-0004p2-IC; Fri, 19 Jun 2026 07:50:29 +0000 Received: by outflank-mailman (input) for mailman id 1341735; Fri, 19 Jun 2026 07:50:28 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waTzg-0004dJ-O8 for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 07:50:28 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1waTzg-001qMv-4g for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 09:50:28 +0200 Received: from [10.42.69.11] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a34f4b5-2eae-0a2a0a5409dd-0a2a450bb90e-42 for ; Fri, 19 Jun 2026 09:50:28 +0200 Received: from [40.107.74.114] (helo=OS0P286CU010.outbound.protection.outlook.com) by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.0) (envelope-from ) id 6a34f4b9-5e53-0a2a450b0019-286b4a724d13-7 for ; Fri, 19 Jun 2026 09:50:27 +0200 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) by TY4P286MB7477.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:356::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.139.11; Fri, 19 Jun 2026 07:50:24 +0000 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0139.011; Fri, 19 Jun 2026 07:50:22 +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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JAJ5ezR6R993BtavfqpOJsaYtBwrpfDjw3Jmu2ziOARBS6SQV6+r+3iKJvr9jsciCn5JGKywC7u28/+TTFlg0FCbvJNqYlxXshoTmyJjwETRrqe1ae5JsTrZfQjg3zrql3lUrcpb7rYN5RduK3UjEeIafdj3+vCOLDMT8b0ZiOFqU/pm944eZ3cLNLA9H4mcsocD48mimeuhDpasrV44OgbiO5Vt/hSA3fLjFG3Z3AoJ2fNACWIrDa0ZF5mO2HQlKntfFEg58J0EA1kl5LrtN6ZoiAtd9HgrKkbdOdBebaSinUbloPva4g40zb85VYgVrEwVIJwvxVme+oNZziJYuQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=VKjclw5V9jrzqLrNd1iwHbNMgBC1nxy9z/dSq/sUNcg=; b=NJbqVSYYjnaaHwZUa3qf+AYwYy0lfOFDs4KHK/a2rE/IKLgKo997Zh09eoAf0SNsYSQpv6uepfwT1YNpwxVxaNaFS6hspM1NiqS4o7X+q5Z4+p0hU4a2WjHfT7wHll8Emv4xbm84D9km/3NxiEftHBrZrot5auNGLPJ8lwF+BtUNAciHmRW75aR9KXLtkGhJ4FZMKyOX9VJ20W7e+LYcJAzqDDH8792b3Msum4KHUJhqX6kBLS0Y4paxelz2/oDIXjDtGnH1zz5wneb3FbUzC/KDttttololJR3pZkfMT91jq05oT/bY64tv0uYcE3V0alFkxCXwSJhOfnf2AzawyA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VKjclw5V9jrzqLrNd1iwHbNMgBC1nxy9z/dSq/sUNcg=; b=b0jsvPF2eDwjAGIt8s/tFTLzZ2qlEgfG1BSvSqA3jI3S0spYTF5NOsxFNCZccDCJmss0dscZo2J5Dlc0UVe16xF+r+XnZOhOGIUKHWuHfn8KDc1fSjIAiHiUf1LuOc6xRxCrY0ivFnhoHvwsb3NfCOHKwAJo7LFcEN7p30koC+w= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; From: Hirokazu Takahashi To: xen-devel@lists.xenproject.org Cc: Hirokazu Takahashi , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , Volodymyr Babchuk , Andrew Cooper , Anthony PERARD , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= Subject: [PATCH v3 05/22] xen/arm: Configure NUMA affinity for populated memory banks Date: Fri, 19 Jun 2026 16:49:53 +0900 Message-ID: <20260619075011.377116-6-taka@valinux.co.jp> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260619075011.377116-1-taka@valinux.co.jp> References: <20260619075011.377116-1-taka@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY4P286CA0059.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:371::6) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TY4P286MB7477:EE_ X-MS-Office365-Filtering-Correlation-Id: 27afa028-b642-4190-748d-08decdd76ad0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|23010399003|376014|1800799024|10070799003|56012099006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: mPAA7+8bOgRvwk8H8LS+FAghOBE5VOjdZer2ezchiz8AsTYjMVyXv9GTSpVfLSy9t3aZOrom1ZghvnDin/mVqO6ZYR00aIvMc2Cp+w1cwYsylHrMDBt5hDSO3VgE1dYDlUSZ8POq17M+OR5xGfiZKe1Zx6EIsrz5qp4yw7RiCh7ZEXyZDNHKd7otIb/iWlkmMd4Nxe0vcxMyd+Dy21y4HYXfhlVtz7wxF0C/8Hv4oJ7R0CH4Il8LHwOggfQ6DvWyunuhWjnrImvUE21kskGud5hoMvQLY69l6FaWYKDWKj/oHNlBgB+BqlP3ptw8mBotNzpTNJGsyrx+nAau+/ejK2P5nVMfZ8jiukuMb/mYkQQp2nV7s1zQdfsP5oi14Sx3DIwz2RWeWqL1Lgd+F78TE2ewtHX89Pdkyv13J0Jkw4wLPP+0cL9SjQbDpGieZHLmNRKDLeU2BBKpcRd4y6cNKP5JjvekWDJ/lq04tqaaVaDVQILx83/ccRbvjUfM3f77w6H7jWBmevTZkskdKMU5zgNkPdfoOIcehsKRQeza9bjBhVWp40aiCaH+7dJZSzK1jIxDoM6jBbb/ONqvNVDtl+0pvzAGzyS/aKQSsBAcncQomlJ5va4YbxO5IHGNVHjijqmEQYNEHwTHNlwZyzoJ6aOoGZ4NvY0XfhzgDpOzW9A= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(23010399003)(376014)(1800799024)(10070799003)(56012099006)(18002099003)(22082099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?38BQWlay/at7UvB4B9U8XaIHuofqvry7V3TVhOcGMlULoTEBhA5hgocGZPEA?= =?us-ascii?Q?MN29dVP2A/WLyg1cdWgxNI0uclHx7rpvAq8RSBSu1RCIkqF9MACRs/y9ALZE?= =?us-ascii?Q?vaJoozfTrLJnWDgxI9GEUc/jB55z1RH0mKF4Z5q8bisaASI2nfom+4U6U3Xx?= =?us-ascii?Q?FGsb0Ia/JWn6sSgBzrngq6R9z+J5uMGxrmdXE3V8gjFMqrQFUngzfOSv10Ny?= =?us-ascii?Q?kOyDsbK5mlv7PHPbuR7PfCi1n1OhP4mSv2g/zkQIUr+/wwAvpU1o8VrWIyRb?= =?us-ascii?Q?lZ+O7NE1WO/zunFnrBI9Gj94FOivZbFpC+Zx9gaPyK2ZI4iB++MCkjRZtoup?= =?us-ascii?Q?cF/1yiIzrQvruurnTOS1yfElApOrbdRzD20j9q0vgVjvdSbertkqej7fQs/N?= =?us-ascii?Q?mxL6s6r3IXJJFTdhtV3TtG3YTep5njqIDx79y/7AYleZQEVPub1rhsH7s4Mw?= =?us-ascii?Q?38bX0LZ8H0d0FOXrXkyYO092FUEtisjhk5mdIEfdDD9cEJhyLEj5mIaOuB5q?= =?us-ascii?Q?aOE3kzVPs8dNiUYHANncxgLspE8yxkWxYSryjREVwjAFeBN5eFIqAsYdEFGX?= =?us-ascii?Q?BJVx5XHpCXsivpMa7MA5FBCHT4aJ1+604SPBqFcpmbut1B5g+M4RR8EKfN36?= =?us-ascii?Q?iweGk3zKNLya9PBw+WC3ktDQa35iytTH2fai3+m8gazP90q5vYNY2kOb3m3P?= =?us-ascii?Q?3v75NsIl7jID5+SZWCeHSg2QaosVlVCJ5+iQPPNtRL2qR78FQ3JzON/BFo9i?= =?us-ascii?Q?a3Rcu8bFEOFMzinFqbpGn7nynQoK53C9UBqxWKiwbrZSYEDmSPB/G4geq9OV?= =?us-ascii?Q?hfKTU6K2yQxepFFr9mnFUxzqfmFurmHwlqGd7QYhPkwQVbYZDxpPgG3hfN/P?= =?us-ascii?Q?37sA+4xCrs9iSg0bGPDPFzxpw8J94b55AJzb7exMs6BwM+H33C8YfCxhdAYB?= =?us-ascii?Q?23PBWA0e5XA/9oawY79UaRCysaN2KRolW4IsIf6mcNCgyAacM7GPM/BNuM5q?= =?us-ascii?Q?pTRpFbL6Nn1HgXEYYj8MQHRSbWO0IvM7uvPmiTIshKf36szaUT/Ndg5+X3Rc?= =?us-ascii?Q?74KBPIh2I2Ggnt0pEN7tXbgwCFrTWc5wqf9ckWsYwPC+2EFts0RHyVnFe9zb?= =?us-ascii?Q?GtWP1EPvg0xkH6Z6jpNpFwLQ9SbLV0lcXV4xRAzxhegUbYfKNoww7XaV3GuP?= =?us-ascii?Q?4W57OWivA+mHszn0R12DC0S6bAEue1VrQe/WzLdKFiPGnloJ8J/yF/eUH36b?= =?us-ascii?Q?SKFMmFxbuCZjtHFmg4kUFmmg9Ea4KyhguhCoGy43jh6H9HCt6FNb3v3AsPoc?= =?us-ascii?Q?DCi+XR/+gNbsec8ZCewdZ4npAgzlZtKaw+FZHFLUin/WwChEE+e07f1ot1LU?= =?us-ascii?Q?JOwCLhyvbyLARg/zCMO0NJwvdRyjNVz32QH1P7W4SwhxXdSABYxe5/vmC1Tn?= =?us-ascii?Q?E9ra66eKT1rNIOEHIFg0151sjv40lZv5UmiV6mFmjEDyaERHstsIG4YYP6eg?= =?us-ascii?Q?G4v4h7SJvu1mPz0jjWxHPvyMBXbL1KzwllYmYfgDSsRop4Llm0p0t6P/owCj?= =?us-ascii?Q?Ys5/SJUekrek5Wt61DQTNxZOWlUVhkyZK3fTXSYcHXV1PTDH1Dovka+SDuvf?= =?us-ascii?Q?gFd94BuE6kgcHZlteOGLVuPZ5EG9YC9tKp0sI8sX3yEM6pP95peaUFMEXAWU?= =?us-ascii?Q?pBEEzI1m39awzXX/KBXelEMSuB9iwBNYZlU7Ma6RMDrhGvPsn1A5hSAJf9P/?= =?us-ascii?Q?cQ0vLhy+otibH5eY+h1qKj6STgr7ggcTgbnankqt4pUJUDZRJu7kI7UcanqF?= X-MS-Exchange-AntiSpam-MessageData-1: h9bd7CtT7U6H0Q== X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 27afa028-b642-4190-748d-08decdd76ad0 X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2026 07:50:22.7830 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 91PqexfN6Uh/YfupaNUABCr+C2i/dJXgJkAhq+C+4z/KjeSPagOBo6BCQcvHvNzORLcrEooZ5jh1bVaA+pldyw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY4P286MB7477 X-purgate-ID: tlsNG-42698a/1781855428-4C5F400E-E5F98E8C/0/0 X-purgate-type: clean X-purgate-size: 6920 X-ZohoMail-DKIM: pass (identity @valinux.co.jp) X-ZM-MESSAGEID: 1781855471265158500 Content-Type: text/plain; charset="utf-8" Configure NUMA affinity for the populated memory banks. The NUMA node ID for each memory bank is retrieved from the Device Tree. Signed-off-by: Hirokazu Takahashi --- xen/arch/arm/include/asm/numa.h | 1 + xen/arch/arm/numa.c | 7 +++++++ xen/arch/arm/setup.c | 2 +- xen/common/device-tree/Makefile | 1 + xen/common/device-tree/bootinfo-fdt.c | 8 ++++++++ xen/common/device-tree/numa.c | 29 +++++++++++++++++++++++++++ xen/include/xen/bootinfo.h | 25 +++++++++++++++++++++++ xen/include/xen/dt-numa.h | 6 ++++++ 8 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 xen/common/device-tree/numa.c diff --git a/xen/arch/arm/include/asm/numa.h b/xen/arch/arm/include/asm/num= a.h index 8c46048ac8..d9fc1ce553 100644 --- a/xen/arch/arm/include/asm/numa.h +++ b/xen/arch/arm/include/asm/numa.h @@ -13,6 +13,7 @@ typedef uint8_t nodeid_t; extern bool numa_disabled(void); extern unsigned int numa_node_to_arch_nid(nodeid_t n); extern uint8_t __node_distance(nodeid_t a, nodeid_t b); +extern void numa_memory_affinity_init(void); =20 #define arch_want_default_dmazone() (num_online_nodes() > 1) =20 diff --git a/xen/arch/arm/numa.c b/xen/arch/arm/numa.c index 1fddf7d15b..b441af1111 100644 --- a/xen/arch/arm/numa.c +++ b/xen/arch/arm/numa.c @@ -33,6 +33,13 @@ int __init arch_numa_setup(const char *opt) return 0; } =20 +void __init numa_memory_affinity_init(void) +{ + dt_numa_memory_affinity_init(); + + numa_initmem_init(0x0UL, 0x1UL << (PADDR_BITS - 12)); +} + int __init arch_get_ram_range(unsigned int idx, paddr_t *start, paddr_t *e= nd) { return bootinfo_get_ram_range(idx, start, end); diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c index c0202d9ff6..cdabf536b0 100644 --- a/xen/arch/arm/setup.c +++ b/xen/arch/arm/setup.c @@ -352,7 +352,7 @@ void asmlinkage __init noreturn start_xen(unsigned long= fdt_paddr) acpi_boot_table_init(); =20 #ifdef CONFIG_NUMA - numa_initmem_init(0x0UL, 0x1UL << (PADDR_BITS - 12)); + numa_memory_affinity_init(); #endif /* CONFIG_NUMA */ =20 end_boot_allocator(); diff --git a/xen/common/device-tree/Makefile b/xen/common/device-tree/Makef= ile index 9036e455d6..658aa293c4 100644 --- a/xen/common/device-tree/Makefile +++ b/xen/common/device-tree/Makefile @@ -8,6 +8,7 @@ obj-$(CONFIG_DOM0LESS_BOOT) +=3D dom0less-bindings.init.o obj-$(CONFIG_OVERLAY_DTB) +=3D dt-overlay.o obj-$(CONFIG_HAS_DEVICE_TREE_DISCOVERY) +=3D intc.o obj-$(CONFIG_DOMAIN_BUILD_HELPERS) +=3D kernel.o +obj-$(CONFIG_DEVICE_TREE_NUMA) +=3D numa.o obj-$(CONFIG_STATIC_EVTCHN) +=3D static-evtchn.init.o obj-$(CONFIG_STATIC_MEMORY) +=3D static-memory.init.o obj-$(CONFIG_STATIC_SHM) +=3D static-shmem.init.o diff --git a/xen/common/device-tree/bootinfo-fdt.c b/xen/common/device-tree= /bootinfo-fdt.c index 272b5a6c0a..2d0e809231 100644 --- a/xen/common/device-tree/bootinfo-fdt.c +++ b/xen/common/device-tree/bootinfo-fdt.c @@ -121,6 +121,9 @@ static int __init device_tree_get_meminfo(const void *f= dt, int node, const __be32 *cell; u32 reg_cells =3D address_cells + size_cells; paddr_t start, size; +#ifdef CONFIG_DEVICE_TREE_NUMA + uint32_t nid; +#endif /* CONFIG_DEVICE_TREE_NUMA */ =20 if ( !device_tree_node_is_available(fdt, node) ) return 0; @@ -136,6 +139,10 @@ static int __init device_tree_get_meminfo(const void *= fdt, int node, if ( !prop ) return -ENOENT; =20 +#ifdef CONFIG_DEVICE_TREE_NUMA + nid =3D device_tree_get_u32(fdt, node, "numa-node-id", 0U); +#endif /* CONFIG_DEVICE_TREE_NUMA */ + cell =3D (const __be32 *)prop->data; banks =3D fdt32_to_cpu(prop->len) / (reg_cells * sizeof (u32)); =20 @@ -158,6 +165,7 @@ static int __init device_tree_get_meminfo(const void *f= dt, int node, mem->bank[mem->nr_banks].start =3D start; mem->bank[mem->nr_banks].size =3D size; mem->bank[mem->nr_banks].type =3D type; + set_numa_nodeid(&mem->bank[mem->nr_banks], nid); mem->nr_banks++; } =20 diff --git a/xen/common/device-tree/numa.c b/xen/common/device-tree/numa.c new file mode 100644 index 0000000000..ff5a7dee9a --- /dev/null +++ b/xen/common/device-tree/numa.c @@ -0,0 +1,29 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +/* + * Initialize memory affinity by registering bootinfo memory banks into Xe= n's + * NUMA subsystem. + */ +void __init dt_numa_memory_affinity_init(void) +{ + const struct membanks *mem =3D bootinfo_get_mem(); + unsigned int bank; + nodeid_t nid; + + numa_fw_nid_name =3D "DT"; + + for ( bank =3D 0U ; bank < mem->nr_banks; bank++ ) + { + nid =3D get_numa_nodeid(&mem->bank[bank]); + + if ( numa_memblks_available() ) + numa_update_node_memblks(nid, nid, mem->bank[bank].start, mem-= >bank[bank].size, false); + else + { + dprintk(XENLOG_WARNING, + "Too many numa entries, try bigger NR_NODE_MEMBLKS!\n"); + numa_fw_bad(); + break; + } + } +} diff --git a/xen/include/xen/bootinfo.h b/xen/include/xen/bootinfo.h index ca675db5ce..ab40b5cd5b 100644 --- a/xen/include/xen/bootinfo.h +++ b/xen/include/xen/bootinfo.h @@ -7,6 +7,7 @@ #include #include #include +#include =20 #define NR_MEM_BANKS 256 #define NR_SHMEM_BANKS 32 @@ -56,6 +57,9 @@ struct shmem_membank_extra { struct membank { paddr_t start; paddr_t size; +#ifdef CONFIG_DEVICE_TREE_NUMA + uint32_t numa_id; +#endif /* CONFIG_DEVICE_TREE_NUMA */ union { enum membank_type type; #ifdef CONFIG_STATIC_SHM @@ -228,4 +232,25 @@ static inline int bootinfo_get_ram_range(unsigned int = idx, paddr_t *start, paddr return 0; } =20 +#ifdef CONFIG_DEVICE_TREE_NUMA +static inline uint32_t get_numa_nodeid(const struct membank *bank) +{ + if ( numa_disabled() ) + return 0U; + + return bank->numa_id; +} + +static inline void set_numa_nodeid(struct membank *bank, uint32_t nid) +{ + if ( numa_disabled() ) + nid =3D 0U; + + bank->numa_id =3D nid; +} +#else /* CONFIG_DEVICE_TREE_NUMA */ +#define get_numa_nodeid(bank) (0) +#define set_numa_nodeid(bank, nid) {} +#endif /* CONFIG_DEVICE_TREE_NUMA */ + #endif /* XEN_BOOTINFO_H */ diff --git a/xen/include/xen/dt-numa.h b/xen/include/xen/dt-numa.h index c4a229bf9b..943bc0e453 100644 --- a/xen/include/xen/dt-numa.h +++ b/xen/include/xen/dt-numa.h @@ -11,6 +11,12 @@ static inline unsigned int numa_node_to_dt_nid(unsigned = int n) return n; } =20 +#ifdef CONFIG_DEVICE_TREE_NUMA + +void dt_numa_memory_affinity_init(void); + +#endif /* CONFIG_DEVICE_TREE_NUMA */ + #endif /* XEN_DT_NUMA_H */ =20 /* --=20 2.43.0 From nobody Thu Jul 23 22:29:24 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; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass(p=none dis=none) header.from=valinux.co.jp ARC-Seal: i=2; a=rsa-sha256; t=1781855469; cv=pass; d=zohomail.com; s=zohoarc; b=OROEjHdv6ub5juWs4GIA9C+WCazwFlHs/Kcbrelo54eAJ5B0lwP7GlNgcROYEdxnOktWusuYjcI2mJbAscLgchYzzjEcZyD+AfmsnhWblPGFTJhVyt1LJskwJKrvoWisu0H7HOl1IvjOT+0AtZWbydW05ElMvF5QazLKFNdFeYM= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781855469; 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=lHp6m7ACt989g4mUr+Mdtue0BtyxlOvoHV2Q/YLtGtc=; b=ZAJQox9XDzP0zeK9DcLE+t75QMeRYOSE0vHYQFta+uktUpTfdnHrIGpgR932x5L7M71qoR4XP3PsThCYyKGpV0gbC6lFrCR+Oxt7pSBeayfNpx8u4oeJwyZnHnyLWl3MGVtTEBqz4TRjxOlMlf5yAKRfSLOVI6f8GwxoM2F3GmI= ARC-Authentication-Results: i=2; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 178185546913759.948566821446775; Fri, 19 Jun 2026 00:51:09 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1341736.1602044 (Exim 4.92) (envelope-from ) id 1waTzi-0005Dm-Td; Fri, 19 Jun 2026 07:50:30 +0000 Received: by outflank-mailman (output) from mailman id 1341736.1602044; Fri, 19 Jun 2026 07: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 ) id 1waTzi-0005Df-QX; Fri, 19 Jun 2026 07:50:30 +0000 Received: by outflank-mailman (input) for mailman id 1341736; Fri, 19 Jun 2026 07:50:29 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waTzh-0004pH-QI for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 07:50:29 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1waTzh-001qMv-71 for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 09:50:29 +0200 Received: from [10.42.69.11] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a34f4b5-2eae-0a2a0a5409dd-0a2a450bb90e-44 for ; Fri, 19 Jun 2026 09:50:29 +0200 Received: from [40.107.74.114] (helo=OS0P286CU010.outbound.protection.outlook.com) by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.0) (envelope-from ) id 6a34f4b9-5e53-0a2a450b0019-286b4a724d13-8 for ; Fri, 19 Jun 2026 09:50:28 +0200 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) by TY4P286MB7477.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:356::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.139.11; Fri, 19 Jun 2026 07:50:24 +0000 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0139.011; Fri, 19 Jun 2026 07:50:24 +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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hoddoynRJb9jSI2y7eY2X8YgPtVNPm2jClijp8XlLbY+wW9Y8urVPKZ88IcI257koIbx3gKBwbUI7Do4LLoFtnWAFJsKwZgUfeEhawNyTB2ois2lDS+HBAUB1tNCPb1XTqq0jk7ZrPTGNDSLB35CNWzakjEWwGyItDryueyZRNSHiICJEFGm6Nedb3RDea6GsphgqOD/5z80j4XKZZmsHjohPXWpHCW30/JBDJj0wifYzZ+LUxddb42ThDJfSjtpUKUPZ9WF61huXOeoRhOOA2BIN7D5kucJbL/NGVOZFwo8EUogxwWOYfrsULOGwEuhv0scZR58GbtnTdbSOhRluw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=lHp6m7ACt989g4mUr+Mdtue0BtyxlOvoHV2Q/YLtGtc=; b=QeINBDEpD4ld4EgQHRnWRRaowWZedfG1wIHj2py4YJNd1cxvr0ysf3qZTgt4VefMhgKzAU5V37hjKx/t7iO6yohVOyN8h6fmR1IJ0ZnqJX5k5VllXDilmtDUbqj0XaR8nt6F/07nDYzuEY42xuANtlCJd3ZINCbXR4Ucvirpy3On08X4zWBrIYekQdWnir4CD6J3eydp2ZA1C35sWg4kXi2CTGk819MSn/9erW8exaNMvkih6NIkrjPvIYt/bb4q0j7ryc16ZfMQcX5C0KTHBAb6avEQMrkBwcx6MR27z8775rCu8jNZg2fc+sNd0pkPiX8ymYD86JGlWK3k/QExTw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lHp6m7ACt989g4mUr+Mdtue0BtyxlOvoHV2Q/YLtGtc=; b=SdOy6zJu1KN2vDh69sKCTd58flUSHvoVKnoMQ9EqCXhZGQxxvTol35vqTyHuNtzhhu73VK3C4dU2/n9oTLjzIXvjKFVWsFNMNoNPZHOFT4/BczOZz27QsY0KoSg4QS5TjUD3PHtY0+BWKEFdduxeSXH7moImX3oC3dCByRc2tn4= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; From: Hirokazu Takahashi To: xen-devel@lists.xenproject.org Cc: Hirokazu Takahashi , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , Volodymyr Babchuk Subject: [PATCH v3 06/22] xen/arm: Map populated CPUs to their respective NUMA nodes Date: Fri, 19 Jun 2026 16:49:54 +0900 Message-ID: <20260619075011.377116-7-taka@valinux.co.jp> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260619075011.377116-1-taka@valinux.co.jp> References: <20260619075011.377116-1-taka@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY4PR01CA0125.jpnprd01.prod.outlook.com (2603:1096:405:379::7) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TY4P286MB7477:EE_ X-MS-Office365-Filtering-Correlation-Id: d58d05ba-8b91-4d97-2fc5-08decdd76bd0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|23010399003|376014|1800799024|10070799003|56012099006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: 2XME3FsXRqbpMutWzR+Ouj3IngTQo+8ZQWVruWqre9KCfWi0CY8nfdxf5MLNbvYobbRf3k1vJV/zU1xGOX1sKDjoNWQg2c0QwFqQBdLkj16Az/VYsSJeIiv1JTxAGIiCw3kp/fgRR/bq0TLgewxaTaDPNdXlPcRVET9HLQPDrJxqSPDkidV6aZBX5ZRXX7bVka0BNmC48WpMSocHpuuNGBCAEFuRkZQWJm4Q+1d+mgFgSvg7vgxfK8N2Yv+TIebyaJ/KqEybP/3iX5V3ZW7Plfqu7sm2A+tYRf4KcX8pEPnHXhrRB67XD9TpdWSYVIs/IrAyAe1ObYrBV+4Qbs9Htf4QKLI9JDEdn78PyJHbu0Reu1hOxnVJZ7rpIWdNphwB/Zw6UTzYXtHFC9jP+CvEDJe1WoTcmQmzYTY6uWoBmszOdDHPY7HxdJQpwicvMmAh89PYpYMgAgBG4NyppbWRNpnrkHL/ODLshjob5pi6ipo3206WT3t0wyUgNAi4Np8nqhQTdftLZUocaAu1BlxFEsCgKfr9WmmtjAdqvO5O/xpA9CbdfUmzFSl7aZTtKpTY9126pGG+MSd7JGSvdDu7LxKZUUumQKeloWe3BAFSbFIA2YFLRRaBOpmYMo51ZkLLkl1B/bY5rAuso4TOGOtIk1fzpxURv6SwyyI194aCV6M= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(23010399003)(376014)(1800799024)(10070799003)(56012099006)(18002099003)(22082099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?QHqTcAm7mA+zA1tS6cXmfTwNKriSNuQQOsQDrB+Hps52ZNyv+4Zu92nkh0Sz?= =?us-ascii?Q?Lzoj5tu+HzunM6Iq495H0DoF5Rns5w27Ljv0up5YCeqBYeAhug3W9Tqf2VKQ?= =?us-ascii?Q?VUZYZavqeYJdY1C8wvMeTUxPg961zwchRK6S4ugu/dpZ5Chj/GUH/P3+GhY/?= =?us-ascii?Q?OG/34L5FyGhOnJgNK9SDZ9X3659UNcDW64O0uj3du2diP77qlnQUxmD2s53I?= =?us-ascii?Q?6MzMZD3FQIU298mI7Txq8wvSfepizC/PU8geTMW8tu2k3XQjKkkzdZ5aVuOA?= =?us-ascii?Q?09gBmgJoH8/OdNS2mPZGJmIAknYzZ3ZptpzEUu1lfzirdfttEmPocXV6UERM?= =?us-ascii?Q?p8tG6PtOJ/NIgnxRWJogUwaaWWO55pSeamLw0Ap25pS5HvtblSR23CSmgRh4?= =?us-ascii?Q?2z+UI/pqSRsidO2bDVmkHWZefeWX2IZjANSmH2fm8nmpvDaQHqW3aWHm8aHc?= =?us-ascii?Q?6nqXTlGMYdfChB9YSPQ9Tka5LfXbYUfEZbIyDfNleQmzdOBdlABbhiVw1bp5?= =?us-ascii?Q?edXUocSJLa/oeNQgbRbf595SJXQOmJ7VpYpKmdZDT7jYRiiaODy6No1MHkeR?= =?us-ascii?Q?xa9jWPvUz1MRB5/8Gk4mY5yCHyk5aFKs2h6fTfl5AeHc7oDm3/3JihfP8ZSm?= =?us-ascii?Q?/2QwQZIkuOFi3WXpU/5pxTpn4VGzXugKyowC2DMiMGBCG9uVaivySQCaLOXv?= =?us-ascii?Q?4xUJQUYVGVT6SF71dmLjSoXLOe6WZZWKiR+FserPINQLzVJjb7SW3HHXGl62?= =?us-ascii?Q?rj+D9femyreN6fJuZOOzPvu4Yn1UupNrYj9C0nY+hoDusV6xmE4z5kBuRBkf?= =?us-ascii?Q?mrcXmZuK6uUtlLPsTpZu/mlWAZzYMTUpoDCDdT7gZt9LSaEKo0/civtDXywK?= =?us-ascii?Q?7NraLRzgChbYuk4f2LOvx3Quy3unf7OMmQZA1GDYkur/yBVjG/7KUzO0WFns?= =?us-ascii?Q?pJgIDVvyMkv7zArUdynizlxy3KA2kmPE6Fc2ltAaeZ2PfPrvQRiJHuh+2qiu?= =?us-ascii?Q?jb29nHOQJYFlolv2CPuVptaFye8t7clKRyivbw4fM8BtzsEcjyPLiLxJ3WKk?= =?us-ascii?Q?qvipIJ9ztSHE99DAfImdMf+wRDoSFa6Ekm0yDCpdrDAOgFgqXA8/GcvV8NFs?= =?us-ascii?Q?lhOpRAR7Jn3uvrWabBefv+k/LkBbztdkWJgm2atVSntVnZ+pDDujGWlj7dDG?= =?us-ascii?Q?F8HUeVFpMF0oE9ixe1GU08WyiyF8bHQ6PYP48yZUprYHTO7UzDx51pKT0zQ4?= =?us-ascii?Q?DNpQjcuaRDUwgVJH/PXabbl6bAXWdWGeWVTTD7jpBSLMZ8Fa/ZMQ8a+FCKVv?= =?us-ascii?Q?cgU0yZu/wJo7s1zfEWs2bmEXT12iHYVlVsLPjggEkQXTe/6FakPd+KlA18sV?= =?us-ascii?Q?CyujBWOpe0QYym0slqthz/MbTSV91hluCjVVafofjPmEerfjr8gS5rw43McS?= =?us-ascii?Q?n7IpSDPv2GbNeivVg9uEWAjw7nMrjF3VWH6ULBW/blsjQybY6mc1qKHGh5Zm?= =?us-ascii?Q?1O0JYTgG8IyB/CBjn9Cz2L6ZzEFQ2q1oM+KoHFIHZn08R6giw+n62A0LAcHm?= =?us-ascii?Q?RYXmz7z4ZvCGVpsRaUGUigwVQ3/bqDIAhi/R6iMG59MhIbwwfGJZ9UGyOQ5x?= =?us-ascii?Q?NqFFwLCCqpIkjvE99LT9G4GTyBHltXtjSfMQAZoZJJ0tCOmZmfdIzrrmKnCY?= =?us-ascii?Q?nAt9LykLF8IlVdQ5JXVBGMkKlzmjtFnlXqHpQOLX3hCYP9oLkN+5UYvE3o6/?= =?us-ascii?Q?iZglWz1/doByrYr/+VQwkG8oO1umWuxmElnJGycL9mrzd5LSxTdomx4gDR80?= X-MS-Exchange-AntiSpam-MessageData-1: STRszDs9M+88Kg== X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: d58d05ba-8b91-4d97-2fc5-08decdd76bd0 X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2026 07:50:24.4595 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ztf83p+HP2+yu1FrRgKHDRZAAixgPmE/2S6VwcJ3Q7I+WmHICfyPPlg54DcLKoCerc24ql8oDFFKzCvv697QHQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY4P286MB7477 X-purgate-ID: tlsNG-42698a/1781855429-4DFF900E-FAC01265/0/0 X-purgate-type: clean X-purgate-size: 1651 X-ZohoMail-DKIM: pass (identity @valinux.co.jp) X-ZM-MESSAGEID: 1781855471163158500 Content-Type: text/plain; charset="utf-8" Map the populated CPUs to their respective NUMA nodes. The NUMA node ID for each CPU is retrieved from the Device Tree. Signed-off-by: Hirokazu Takahashi --- xen/arch/arm/smpboot.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c index d1651fe7dd..23c5a46757 100644 --- a/xen/arch/arm/smpboot.c +++ b/xen/arch/arm/smpboot.c @@ -133,6 +133,9 @@ static void __init dt_smp_init_cpus(void) }; bool bootcpu_valid =3D false; int rc; +#ifdef CONFIG_DEVICE_TREE_NUMA + static nodeid_t __initdata cpu_to_numa[NR_CPUS]; +#endif /* CONFIG_DEVICE_TREE_NUMA */ =20 mpidr =3D system_cpuinfo.mpidr.bits & MPIDR_HWID_MASK; =20 @@ -244,6 +247,17 @@ static void __init dt_smp_init_cpus(void) } else tmp_map[i] =3D hwid; + +#ifdef CONFIG_DEVICE_TREE_NUMA + if ( tmp_map[i] !=3D MPIDR_INVALID ) + { + uint32_t nid; + if ( numa_disabled() + || !dt_property_read_u32(cpu, "numa-node-id", &nid) ) + nid =3D 0U; /* default node */ + cpu_to_numa[i] =3D nid >=3D MAX_NUMNODES ? 0U : nid; + } +#endif /* CONFIG_DEVICE_TREE_NUMA */ } =20 if ( !bootcpu_valid ) @@ -259,6 +273,10 @@ static void __init dt_smp_init_cpus(void) continue; cpumask_set_cpu(i, &cpu_possible_map); cpu_logical_map(i) =3D tmp_map[i]; +#ifdef CONFIG_DEVICE_TREE_NUMA + numa_set_node(i, cpu_to_numa[i]); + numa_add_cpu(i); +#endif /* CONFIG_DEVICE_TREE_NUMA */ } } =20 --=20 2.43.0 From nobody Thu Jul 23 22:29:24 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; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass(p=none dis=none) header.from=valinux.co.jp ARC-Seal: i=2; a=rsa-sha256; t=1781855470; cv=pass; d=zohomail.com; s=zohoarc; b=YSLlFzjYZxFAm1b9vhSSgGduKiuruXAQwNaExMSXaeb5lXWUumRMRCBGEP5Igqnn9Ez1yt/JVSaPxir6FOxohcOFSI8zc686OzV/xXLbFK1VGPsIzGRIoK+LYn9W2GxZiwegg4PTU/07gjsjRTmncgOE3pDSY5mkp3q4DrdG5u4= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781855470; 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=rCZMtyLGMNYzHusbpyFyHoil1cfalWfsKDDSBtV0qlk=; b=i4QRLpfwRK6O7mcVFRikz5z/UC7/N/qg2kn93Wxeg701mZn7my7XZs5nIwFWEijVeLnu+WjV+N2lKMm32dZr3EUWHwWy5qI53nmLgN441OY11gr0jAV7F7kk1msYQMzemjvwgD6lcInhr29fqMnoqrMd71ybt7gEo3qZK+6Hu8k= ARC-Authentication-Results: i=2; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1781855470244920.4558478207792; Fri, 19 Jun 2026 00:51:10 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1341737.1602053 (Exim 4.92) (envelope-from ) id 1waTzk-0005Sc-8i; Fri, 19 Jun 2026 07:50:32 +0000 Received: by outflank-mailman (output) from mailman id 1341737.1602053; Fri, 19 Jun 2026 07:50:32 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waTzk-0005SR-3h; Fri, 19 Jun 2026 07:50:32 +0000 Received: by outflank-mailman (input) for mailman id 1341737; Fri, 19 Jun 2026 07:50:31 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waTzi-0005Bi-Sz for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 07:50:31 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1waTzi-001qRQ-9g for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 09:50:30 +0200 Received: from [10.42.69.11] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a34f4b5-2eae-0a2a0a5409dd-0a2a450bb90e-48 for ; Fri, 19 Jun 2026 09:50:30 +0200 Received: from [40.107.74.114] (helo=OS0P286CU010.outbound.protection.outlook.com) by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.0) (envelope-from ) id 6a34f4b9-5e53-0a2a450b0019-286b4a724d13-9 for ; Fri, 19 Jun 2026 09:50:30 +0200 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) by TY4P286MB7477.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:356::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.139.11; Fri, 19 Jun 2026 07:50:26 +0000 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0139.011; Fri, 19 Jun 2026 07:50:26 +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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=H7qNTgP1KevvChwSYbz1tA8C5G76ZnqB85+tfWai3TutK+u/BkmWLHjwRbuf9IUJtI70vNMq2QU9TJTtewcYSWRG4IpXNigekxiB/g4k8ravQAhL8NoS3ZapNrjP1wDqHBZjp4a05t5XjvQR6oaSSlWU99kmq6499ZZZCpkU3jlEgm9/NQk7IHRL7vCPPvsXHs95Kf28UuycN31Zm7D7+iuRW8iY3iE9c+DM1sfWjl3VMcCpuPSD6pzF7qSsj27C1xxWDusYihIrxTRntS5DuSXJUF/2rwRu+DEqXg04NCUUayMuZR3aW9HE2LnH87PTW3MpswDz8LL+RI+zfVtX0Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=rCZMtyLGMNYzHusbpyFyHoil1cfalWfsKDDSBtV0qlk=; b=wS2b3bW43j5lnVTFpyl/tJQW61lm7HtwfLG2CcrRKPMg7OApOXW+9Ua+rrgSfyffGzw7zRsS4mmThrScJ7y2ntlRbeTp9oUH2nF7+2umNfzqsPpcnue9rI5D16gFWqIa5o1nLuQXSN4phtYECzvwKePk1t3WSs2lAzpdXfQn24fEqW4i3Gjlp4iyCe+fET6NKfey3hF1lIqwMdk1ESy6PmoyIjw+59jKSdNy6szwLgVFCzjUP15Sx8KbTKPomAwbT8xUiEdN2poT6ln6yEpc54za4EzU62nlOiECwlFqUVDdNjMoTaYkphB0+Bca5VYlkpTf7S2st6YEBKkrCpehMw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=rCZMtyLGMNYzHusbpyFyHoil1cfalWfsKDDSBtV0qlk=; b=sTOrfKgI7LhXqRGxbj5wdis4tt2xMf6TRbQb4SIDrCRYJYCgHuWgUNL4X94AkOtT0vcDwGg5P/LNdlk5ZjLqOshSvuMdnfSqjW6E0vp2TCSF+IAtrNO1N/awVc6Hvf73LjXMRcynAp4Zy38BBBAPxiDH9VJLFfZSoBPx7syIAIo= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; From: Hirokazu Takahashi To: xen-devel@lists.xenproject.org Cc: Hirokazu Takahashi , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , Volodymyr Babchuk , Andrew Cooper , Anthony PERARD , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= Subject: [PATCH v3 07/22] xen/device-tree: Read NUMA node distance from Device Tree 'distance-map' Date: Fri, 19 Jun 2026 16:49:55 +0900 Message-ID: <20260619075011.377116-8-taka@valinux.co.jp> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260619075011.377116-1-taka@valinux.co.jp> References: <20260619075011.377116-1-taka@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY4PR01CA0122.jpnprd01.prod.outlook.com (2603:1096:405:379::13) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TY4P286MB7477:EE_ X-MS-Office365-Filtering-Correlation-Id: aac5b873-89dc-40dd-583e-08decdd76cd0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|23010399003|376014|1800799024|10070799003|56012099006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: UMXCJfxWH7mjR6PmjaCoKNxILY8yoFvU9ENayEGrKOKcAAlsxTSaiQ4T/pWtaC6/va3DB32IrBYytW3YiKy2b3aijyY0f8PTpM7L7NeN+9N63EEIsBXfbOE0YPF2efwE0oFARztJditu9CgBM36kO2LWaL4/zrqwyoh7rdCk/EhLTJduuB3RPwgpSzz5tn6eUJmmboM/TWw00vfuUzhZGyoU1u4tzl6IEAWvIN2RYpswwud29cEDdypTi2l3+Ljb46d6wIkJb3fzHb5Oo1CIZaL/phFLEkucvXXUIdB4pSBtwGD5pFdRY2YZXVTU0hNt7X+AuruB1RBLF/j+KxhHQgF3y1Ccj4toUji9Om5Gy2GJlnVQ3Sb9brrqFZV2t2J94t2f9uPv+isGPkAknjhd1HoiGSxNNFwU6b71amgJKatPW6ET9xiwloHB0sUIdt06JbOAYHyWQRzonoab01ygsV7pSUrZUZprvhK8DJ/mXtCDt9WudJB/GAY8mQmPx+QpzOiuCELIHKVaSAu2ExkjvqOoOhdo+SUWKaVnopsquDNd5+uf22msbWtFBNbHByD5z+EAP072bENnrHW4Yk+RN8Iw18xPs64anjeRzQ8PcKpURcUMsg3iuYitNQlrExrbSsu2I0pruZONYRJXvlyf6SZH/6/Pe0jYRIYQxMjNQw8= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(23010399003)(376014)(1800799024)(10070799003)(56012099006)(18002099003)(22082099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?MLkvSUDB4m5Rm7qrMiZahf/Vw4ZSz2jsAIm1w5/p4orj8BHIOwXT5yBxUDPO?= =?us-ascii?Q?MmLYqy8ZiTJztSMd0Lj3mJQSynTV2swcM51NkLwlDwv1TzpwuhKHRmqC4OxW?= =?us-ascii?Q?06M4Ydqs3iMzJZYhJY8Y2U1k/zGKO/ljV7PMtzxi4A2+45wL2C27StZrr1AO?= =?us-ascii?Q?TTZf1QJ8yaPwy72a4T2S7/yCabhfbd5UGqqLHA8rhsftjAAyxD0GDgnxt2cn?= =?us-ascii?Q?NC8AAYhq0FzYXrYlWUMXgi2vyqHf18+YtT89vUGZZ1E+FPNfVOnFPKTrjvQA?= =?us-ascii?Q?MdAB+VCGWfadCyA4K0GZG4Ssz5LQqPjiok9O4hZRBRJ7flHMbinScMMpsAJY?= =?us-ascii?Q?X7y0PU4xJfbKVtvUlJfLtl6t8XvrooG96KzFaBuh0rj8hjZqXjl4fatYuXE4?= =?us-ascii?Q?6mwZjnq2QfzEb37a0e8EQzVrmkflDH//QIxW/ckEts97YL/VR6btCRnguOxn?= =?us-ascii?Q?N2WK1715rBvxenRO8oQF2wGX9K81tWL+8wyPZvz3BHPM3P2V1N4HZM08nm2G?= =?us-ascii?Q?O+dL/X96JDwhvqwifWFv07RDZI2ipeBB5iJQpu//rYlgCEsRiUK0nbR0EKFe?= =?us-ascii?Q?7rbm7KQ4uHm3ma4CXEW2Ss5y5OjLPfQ6EfBjDYqHW9G37f5fAn7OGRj+Goph?= =?us-ascii?Q?ErsyZzwdjjROEp9zfPkD0Qc69xlqmrdovEPulFyXikoNxpmi/sc1zMQ78OI+?= =?us-ascii?Q?nh29GS+tU5eBTxrqtznibnRvm4M1MiTG6KOg7vcj6Atl+i4LBU+b1yLaktAS?= =?us-ascii?Q?jB8zHJjQvkbKqdCfxnRPWHC8EmX2d0MKkc4uwEzYbeEcgSv4f01Xh7CYaXf6?= =?us-ascii?Q?cBPIQvJiEUkHw7fbzxUbpqOsoAfyT9aHyyWQMQ27o/oXKB4I+3/iNQcvrCPl?= =?us-ascii?Q?bK2gODX5Aq1Of9964ufgY+QAISCTE7PFQo19WFVyWf5yFRdyFkTNzGXM/cA+?= =?us-ascii?Q?wHsX+tKynP5pJESc6+JXKmjU2/rFusTaCGAQOnHNuJMFHDlxMt22UtnVLDIG?= =?us-ascii?Q?ag5ZCT1Wyjs3lC6bom6W1ClSl9oUGwu+PUFklI+W5u1DqNOvLxHymmYDI1UT?= =?us-ascii?Q?eTl3UdAkfHYCCCP/OJTJIKB7vn44j/dhDd6Zj1h9cQ9OhFy63Wa/O0sepoEb?= =?us-ascii?Q?3Ffq1WrQ/jyNYn1fTB4D+S0Jxy/0w31QlaW+3wbA2g7pYkOqFUudwMwGPCxg?= =?us-ascii?Q?8BC4idAFUPV+AeqAOPdjS6iBUxS5guhJTsC5G2R1X7ces2HYZ0ZMqnjJ65NJ?= =?us-ascii?Q?xlNC2rNlxFXHBiE0WMLgklR/62d3Afy2RSI2xXrZ3BG/Vn6oZgAdYIJg+7hE?= =?us-ascii?Q?kGn54bNv+9grNKDBXhljG1ce0vE8LrEtSr+qzuBNDGcK5Ep4p8qRgvGeKulf?= =?us-ascii?Q?Lcf4rqt86quuMfrpV3hC0CNlvg2NFJC+n1/G3j4/G3iJVOy0e7GPTfLFvCW2?= =?us-ascii?Q?PN+rGM+PwykW+AGFUiY8+v4dKJAMB7crpCq/PVAmIXsnb6eC4r6mRBYA1WbZ?= =?us-ascii?Q?Y6xnPGrxECS4jX5EOC2o25up8DBinRJ9Iuk126oLr0IMl82m+AgLP4eQEAk7?= =?us-ascii?Q?nEqub/xZcqTPvYxYnpU5t1BXPCevsWemk/4FK490uQcV5O34AzmuxMn+nAUT?= =?us-ascii?Q?tFpKbQMaomK9o7nNBT64qE0huLEgNvoAAznmCG7Qyv7ILLLwywRlovJ5y/zm?= =?us-ascii?Q?p44pNyMZoAJ0dVAtCAZS8AShnGOs/em9dDD30cl+D0YIy5D2FkdAKQWa4ZI8?= =?us-ascii?Q?ARnKE4pVbbpQ7SVhJ6QDBU9wsZg/CJyMX4g2WcJ2u1SKhK7/DI+3krvkue1Y?= X-MS-Exchange-AntiSpam-MessageData-1: vhg9kIwhLpx5jQ== X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: aac5b873-89dc-40dd-583e-08decdd76cd0 X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2026 07:50:26.1563 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: BVr7mJbiKwsCooYuGylmBud7iUQ3+GRs+0CKAtuMPHStffvA5Hles2XW6nWZ+oFZa3IzhashLuoxisK9SjLUPw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY4P286MB7477 X-purgate-ID: tlsNG-42698a/1781855430-47FE900E-C675C39E/0/0 X-purgate-type: clean X-purgate-size: 6592 X-ZohoMail-DKIM: pass (identity @valinux.co.jp) X-ZM-MESSAGEID: 1781855471146158500 Content-Type: text/plain; charset="utf-8" Read the distance between NUMA nodes from the Device Tree's 'distance-map' node. Signed-off-by: Hirokazu Takahashi --- xen/arch/arm/setup.c | 4 ++ xen/common/device-tree/numa.c | 76 ++++++++++++++++++++++++++++++++++ xen/common/numa-distance-map.c | 49 ++++++++++++++++++++-- xen/include/xen/dt-numa.h | 1 + xen/include/xen/numa.h | 5 +++ 5 files changed, 132 insertions(+), 3 deletions(-) diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c index cdabf536b0..cf12c406fc 100644 --- a/xen/arch/arm/setup.c +++ b/xen/arch/arm/setup.c @@ -375,6 +375,10 @@ void asmlinkage __init noreturn start_xen(unsigned lon= g fdt_paddr) device_tree_flattened =3D NULL; } =20 +#ifdef CONFIG_NUMA + numa_distance_table_init(); +#endif /* CONFIG_NUMA */ + init_IRQ(); =20 platform_init(); diff --git a/xen/common/device-tree/numa.c b/xen/common/device-tree/numa.c index ff5a7dee9a..3dd608b599 100644 --- a/xen/common/device-tree/numa.c +++ b/xen/common/device-tree/numa.c @@ -1,4 +1,80 @@ /* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * Derived from Linux kernel 7.0's $drivers/of/of_numa.c + * Parse 'distance-map' + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#define LOCAL_DISTANCE 10 +#define REMOTE_DISTANCE 20 + +/* + * Parse the '/distance-map' node from the flattened device tree + * and extract the 3-tuple triplets . + */ +static void __init dt_numa_parse_distance_map(void) +{ + const void *fdt =3D device_tree_flattened; + const struct fdt_property *prop; + const __be32 *matrix; + int entry_count; + int node; + int len; + int i; + + node =3D fdt_path_offset(fdt, "/distance-map"); + if ( node < 0 ) + return; + + if ( fdt_node_check_compatible(fdt, node, "numa-distance-map-v1") ) + return; + + prop =3D fdt_get_property(fdt, node, "distance-matrix", &len); + if ( !prop ) + return; + + matrix =3D (const __be32*)prop->data; + entry_count =3D len / sizeof(__be32); + + if ( (entry_count <=3D 0) || (entry_count % 3) ) + return; + + for ( i =3D 0; i + 2 < entry_count; i +=3D 3 ) + { + uint32_t nodea, nodeb, distance; + + nodea =3D dt_next_cell(1, &matrix); + nodeb =3D dt_next_cell(1, &matrix); + distance =3D dt_next_cell(1, &matrix); + + if ( (nodea =3D=3D nodeb && distance !=3D LOCAL_DISTANCE) || + (nodea !=3D nodeb && distance <=3D LOCAL_DISTANCE) ) + { + printk(XENLOG_WARNING "Invalid distance[node%d -> node%d] =3D = %d\n", + nodea, nodeb, distance); + continue; + } + + numa_set_distance(nodea, nodeb, distance); + + /* Set default distance of node B->A same as A->B */ + if ( nodeb > nodea ) + numa_set_distance(nodeb, nodea, distance); + } +} + +void __init dt_numa_distance_table_init(void) +{ + dt_numa_parse_distance_map(); +} =20 /* * Initialize memory affinity by registering bootinfo memory banks into Xe= n's diff --git a/xen/common/numa-distance-map.c b/xen/common/numa-distance-map.c index 73344f7f33..6e68912646 100644 --- a/xen/common/numa-distance-map.c +++ b/xen/common/numa-distance-map.c @@ -1,19 +1,62 @@ /* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * Derived from Linux kernel 7.0's $mm/numa_memblks.c + */ =20 #include #include #include #include +#include + =20 #define LOCAL_DISTANCE 10 #define REMOTE_DISTANCE 20 =20 +uint8_t * __ro_after_init numa_distance; + /* * Get the distance between node 'from' and node 'to'. */ uint8_t numa_node_distance(unsigned int from, unsigned int to) { - if ( from !=3D to ) - return REMOTE_DISTANCE; - return LOCAL_DISTANCE; + const unsigned int nr_nodes =3D last_node(node_online_map) + 1U; + + if ( from >=3D nr_nodes || to >=3D nr_nodes ) + return from =3D=3D to ? LOCAL_DISTANCE : REMOTE_DISTANCE; + + return numa_distance[from * nr_nodes + to]; +} + +void __init numa_set_distance(unsigned int from, unsigned int to, + unsigned int distance) +{ + const unsigned int nr_nodes =3D last_node(node_online_map) + 1U; + + if ( (uint8_t)distance !=3D distance || from >=3D nr_nodes || to >=3D = nr_nodes ) + printk(XENLOG_WARNING "Invalid distance[node%d -> node%d] =3D %d\n= ", + from, to, distance); + else + numa_distance[from * nr_nodes + to] =3D distance; +} + +void __init numa_distance_table_init(void) +{ + const unsigned int nr_nodes =3D last_node(node_online_map) + 1U; + unsigned int i, j; + + numa_distance =3D xzalloc_array(uint8_t, nr_nodes * nr_nodes); + if ( !numa_distance ) + panic("Failed to allocate memory for numa distance-map array\n"); + + /* fill with the default distances */ + for ( i =3D 0U; i < nr_nodes; i++ ) + for ( j =3D 0U; j < nr_nodes; j++ ) + numa_distance[i * nr_nodes + j] =3D i =3D=3D j ? + LOCAL_DISTANCE : REMOTE_DISTANCE; + + if ( acpi_disabled ) + dt_numa_distance_table_init(); + else + ; /* Initialize the distance-map array with ACPI SLIT */ } diff --git a/xen/include/xen/dt-numa.h b/xen/include/xen/dt-numa.h index 943bc0e453..352853dd81 100644 --- a/xen/include/xen/dt-numa.h +++ b/xen/include/xen/dt-numa.h @@ -14,6 +14,7 @@ static inline unsigned int numa_node_to_dt_nid(unsigned i= nt n) #ifdef CONFIG_DEVICE_TREE_NUMA =20 void dt_numa_memory_affinity_init(void); +void dt_numa_distance_table_init(void); =20 #endif /* CONFIG_DEVICE_TREE_NUMA */ =20 diff --git a/xen/include/xen/numa.h b/xen/include/xen/numa.h index 18c22d3d30..e7201539d1 100644 --- a/xen/include/xen/numa.h +++ b/xen/include/xen/numa.h @@ -129,6 +129,11 @@ extern bool numa_update_node_memblks(nodeid_t node, un= signed int arch_nid, extern void numa_set_processor_nodes_parsed(nodeid_t node); =20 extern uint8_t numa_node_distance(unsigned int from, unsigned int to); +extern void numa_set_distance(unsigned int from, unsigned int to, + unsigned int distance); +extern void numa_distance_table_init(void); + +extern uint8_t *numa_distance; =20 #else =20 --=20 2.43.0 From nobody Thu Jul 23 22:29:24 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; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass(p=none dis=none) header.from=valinux.co.jp ARC-Seal: i=2; a=rsa-sha256; t=1781855472; cv=pass; d=zohomail.com; s=zohoarc; b=UkirqwB/o+Lqfgf3hd0781ENyMx9wf6t7DY9Q25DLxvwG6uBdh9rnf1ZsvipQL6S+Jv+Znc6u0wByiXa1yVW8DqtdwB1fM4BlxcGDPBBkGMF+JiiQGcZdGT0T9f5osKM2Dn5zLe5HRO7JsbdNF03TpSxIr7zcgZtVhz+uRjUvVI= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781855472; 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=kZ/ulHGw1zKNLUxS/O7t+QzypijmScIl9LlYi5MPJCs=; b=hF56+DFboL5Xe/CNRwwtFrR6GQIIiABgzIdQvztAY8kDwOD+NMZHlhB//kwaA6UCPeWzZL/WEunfgGeg8lUqjKdGLeAQoJralOKVqRD24QFkeExUnbF9GeM90TCNL6mav3neqQJpZrh88fPRPjKB6Lam/CxFOMPi/KAd+8mjUmw= ARC-Authentication-Results: i=2; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 178185547233232.80537642598756; Fri, 19 Jun 2026 00:51:12 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1341738.1602062 (Exim 4.92) (envelope-from ) id 1waTzm-0005k3-L0; Fri, 19 Jun 2026 07:50:34 +0000 Received: by outflank-mailman (output) from mailman id 1341738.1602062; Fri, 19 Jun 2026 07:50:34 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waTzm-0005jp-Eb; Fri, 19 Jun 2026 07:50:34 +0000 Received: by outflank-mailman (input) for mailman id 1341738; Fri, 19 Jun 2026 07:50:32 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waTzk-0005QJ-DP for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 07:50:32 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1waTzj-00Dxzh-E8 for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 09:50:31 +0200 Received: from [10.42.69.11] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a34f4c7-e002-0a2a0a5209dd-0a2a450bbb74-0 for ; Fri, 19 Jun 2026 09:50:31 +0200 Received: from [40.107.74.114] (helo=OS0P286CU010.outbound.protection.outlook.com) by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.0) (envelope-from ) id 6a34f4b9-5e53-0a2a450b0019-286b4a724d13-10 for ; Fri, 19 Jun 2026 09:50:31 +0200 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) by TY4P286MB7477.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:356::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.139.11; Fri, 19 Jun 2026 07:50:27 +0000 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0139.011; Fri, 19 Jun 2026 07:50:27 +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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=l0yb9n/Kp5rGXqbi3H0XmKpfqaNAIpnzfs8rtjgsLYW69P4s6ABq4TuUaFFLWnU+CTZGTEQdx7qY8Ghdq2yVC2Ii33JLK/lShk1LxTOcbYMJiIYJDcoCsuOBDBU2nUxNCnRSeEBo5OD9PGE4CsNjJHURPDi0hdKw0km1cWNkeV0oget0VUc+5GJfP2ARNtyXRx54N1xFevgPoBBZnB8OPX16iErLR06qCbVu5nvF8sRMK1rYmUeLk3WXU/vaSLrBf2t2mF/vefWSeoU8Rfob1wHadx/zwOotKBYZ6cg4U9/2pKOgK/r9cD/3s6uKmniAeUSiK15YnnD6OCi4Hdev7A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=kZ/ulHGw1zKNLUxS/O7t+QzypijmScIl9LlYi5MPJCs=; b=DjAhnrkOEJdlo7ImdlvRblDktXA4W5cFbY/M5Uq5blVPTKR9Ig3aONc182EiOts9drDoH/e7S8hRmslHJ6C3UI3FhwHlCUEtOazcmyOTYQ2zPFimq/HPNwllRtztJVvsuZ612ZYBbdhRns2ouqm3b1RTuFhWDlLGQxWshVmhAO1iviGhFCNqwCqm26p8wh5IaUahwMdH2mzGyGl8ZQRprmihg/PprCkA1RIqZ6XsmvOWJWq7bZ42/sSpMD1BWnyxtJ1/v4C/jirqdUMInYW+i08biOIpKybT/eL4ZcAFc+8r5HmUHUUSnr+bbO7N+N2/2vtp2YxhI/YLfg1VpDUTwg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kZ/ulHGw1zKNLUxS/O7t+QzypijmScIl9LlYi5MPJCs=; b=D8LhMyw1cKKXCzLhuZDwbz+5CBFyceg4Eu3ImfWWMgFrJwrig5DQZufAMM0yN6TTi+VRoXw8Ba06b8Y80jc4oKWzcThX/Usd8PrjWwMYVk0eOIE7JgkdVcl1S3fsis6oNplDu1R9DPDerzJXm5VJnvq4X8a7eecMDys799S/9cA= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; From: Hirokazu Takahashi To: xen-devel@lists.xenproject.org Cc: Hirokazu Takahashi , Andrew Cooper , Anthony PERARD , Michal Orzel , Jan Beulich , Julien Grall , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Stefano Stabellini Subject: [PATCH v3 08/22] xen/common: Allow building ARM32 Xen with CONFIG_NUMA Date: Fri, 19 Jun 2026 16:49:56 +0900 Message-ID: <20260619075011.377116-9-taka@valinux.co.jp> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260619075011.377116-1-taka@valinux.co.jp> References: <20260619075011.377116-1-taka@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP286CA0148.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:31b::16) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TY4P286MB7477:EE_ X-MS-Office365-Filtering-Correlation-Id: daf3a842-c9e2-42cc-f79d-08decdd76dd4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|23010399003|376014|1800799024|10070799003|56012099006|6133799003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: +yo7k5n1EIb9ygkAs7dbh8WpeAiGE8scckbbXq0yPSECFSojrL42xx8RJwin+Ovxqu/+33baBRG4EYk4RMzNVXP9fiIoDmxMHSuuoGONpg38T26PYqzWH6CYQgyNS1RvYo9UOJDHPNvcizxzMboyTUpRMjc7fuxAaFh65oBOhvMwOleJO4Nt+ucSwT2H+zESv/EVttSnsdzLficIW4ZTB9LOy+2oeOqyjVO/Z5X+J2/48pb4iC6Xlrp775nVectqLjzmpd0j12Ky0Li9FyBFmMBT4Hi6ECesr1Zli3myZPYgGQhhUorNdi3eFAnxwc5Q7BWB6LcuLyvq/2+yXz1XK9LAd9mQCXlQBJT/2xRCbctBhKUxxPPYS2HYOmG+wvrk5l8fw9i0gN2NZ6tIVHdNcwsEdDhosEdLc6f3TmMHzkQkpMusVUAf5ZSPbGIQ4+EJDemyFc5qF5w9oUcZFrsOP3mjBZxD27OjpmU6gO0278Tlj8FY52nHwF+a5pMcrgk4Wp4xRD0rxrikI889dSzJ/gIBdXIgB1q9GvgTlvl3GnZNdM20E6wvIkraPpy0Qt+CtF5eesQEwoTTTmWrRyvC+zIqZZxFXr6YBnwsPuDdJjHpsfHyGuWxTTlctwnyL/5HAhQq7C9sHg3twnDkR3UXnB1P0gCSgsF8K8rYe6pBuQs= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(23010399003)(376014)(1800799024)(10070799003)(56012099006)(6133799003)(18002099003)(22082099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?P8oTukbM1h2LcEFzN+FlYiritY7p6Lt5dRx5iXq0I1HTHbcu9aYaZkmQ/Jud?= =?us-ascii?Q?a3cCeE9lushCM1yHHMuOffPAY0aPajJ7j7NQrQ6c1fvUSGzsIMnwHqgyzmjS?= =?us-ascii?Q?h3ZHviqD4EFMFdZATw+kTXUb1tYEPnQZXzfavph0SOqRt/ELZQX3vsXooHRO?= =?us-ascii?Q?khaNN6mHEOrG3Y3uxNT7WH2W1OAlY02KP+GOiowBVJbBAVVzUMTroYfnMV1d?= =?us-ascii?Q?XWF/gdn1bdz8D2/DHMZoqFLxNidMVFoMvREekhr94YD0mgYcIz9HZM0HpzQ0?= =?us-ascii?Q?TM9n5u2YbcNSYV8zUD+vunpSd2ck1CkUUJTDBtbfZykyDxS1yq7yPBtvzVUT?= =?us-ascii?Q?89yJlYA8/e8o7V3mA17HHet4oadTXed55N8hr1Bv6xZA/EvCxXhL8UsusYtt?= =?us-ascii?Q?ODfDMstjEZH8B4Bhfmng+8ktmhkGJEuXAezBZXHGWO4A14Jl38oZI6zK/+9c?= =?us-ascii?Q?svZRXFd/DKHpO02hZf5urQmiw6rLieJwZ6mahK3e5q7XAJls3kg3MNiC1Ytg?= =?us-ascii?Q?zvzkLY0U2NuIhD1scJhxAgelcP4dJLldyjWnQ5BV+K4ElxHFJ0SaCirIcBtN?= =?us-ascii?Q?qFS+NYU0Z3xn70KeBjV417NG7BjdVo0y9gWkqDQ0xeU6BTlHoemWAqOgctDb?= =?us-ascii?Q?ILFPEVslcVIP9DmEPPyRAIVQITSGeevEY1ZPIs/etAh6gN7Bxk8V8ThTHqqf?= =?us-ascii?Q?nFcqR6y9MsnjNEFDsVXJ2Z06A5uRRfWPLIBZMatyC+7iR6nGFljkQYLysvsW?= =?us-ascii?Q?ZGYLjJ1OSWohl10JPXymk0yi1xrbO57QssdwaI9jt5KqpRRKO4E90AQ6Msyc?= =?us-ascii?Q?Saa2XbdC9QzJE8KFw4V0EHT7c8uUy0ob1sKeTtON5NT3t0FeqAa/xR5SlAS1?= =?us-ascii?Q?55QHhuz1uYlQJFzCnBmYk+sRW0pDTGj4XcgM5/FOfh9z8j3A0HgLj3OjPKQ0?= =?us-ascii?Q?ja0M6xM12suoHfbBePhHz5E6rxh/6ltTjKsqX98lKAU2BtlbanDySPlNBFmF?= =?us-ascii?Q?Ht96FkHoFE8t4oNLZquKwZi0q0QmyEZHZHW9vl3prUJo4/8D3vxwP0ewMq0S?= =?us-ascii?Q?iKBdRpw1/KGqZAdirM6F+UKyjY423IGd8yqyqKOBfsVutWQ52cUzUxkqxD6O?= =?us-ascii?Q?a0+0tN0Jp3Tizn6+ktqglL5/W+Co5k9C+ANam9b+Bog/Go6biZPMJNoAFWg1?= =?us-ascii?Q?Z7PPbXgtqQ92lgEO0WPJpJV5IZOgX2VsyAAsOctXA65H98lIIvgwFvZMuOHX?= =?us-ascii?Q?r+TDHBi/F+lRlOXJxQY7opU6Pz4AxsQO5goupCm888lvDiMFR1fXBO7xYKl7?= =?us-ascii?Q?Bfyw61Jgf3abslU9n6Ldh5kqOhxMaPpQfnvQSvjec+iYNfFPc/2kQQP2OBqb?= =?us-ascii?Q?rlGjQNVRPW6OTPbsHW+/3H+dgt1t9vOwE5lrOW4RBrrJ4GM/R22NULRF/Y24?= =?us-ascii?Q?KG+GuuRNy+HMkBw2S3fWKSG1lb9sSwlsJCSnr45GewvMX+P9s091XPDxPW8C?= =?us-ascii?Q?Un6Pz9z3r9KWyJYc7EtUlAm2P2FVY5wC9vQRaKTEd/aCQylX1nZ7nGKsyCiD?= =?us-ascii?Q?JdE75EyYWEHBUlfYxeGz+osfiSKUPHhGw4mI8LsDbVUK+XL+YYQnJJ0NY89R?= =?us-ascii?Q?FPND+qqeOVs2MmPk4OQLlogjhGGlZHmWtKhUZkdYWrZVVT8o2OfF3YryxyMf?= =?us-ascii?Q?ERcsN9Fnn9xarju516tB6S5CCuK8WXiQCW+U2asGxBKeZ4T64LCKFeMqxmJP?= =?us-ascii?Q?sNV/FWLFHYtdNFwfsdPEnq82PWUvz2nx+f4M5RvpS83vnOJnRkUAikrPdOMd?= X-MS-Exchange-AntiSpam-MessageData-1: DFOGMa3OOo1vsA== X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: daf3a842-c9e2-42cc-f79d-08decdd76dd4 X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2026 07:50:27.8646 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: /SBD0MlSTUMLcj+ZAogRTCbJaYuSHj4skllPK41vVXa06qfjVx3PTqZsXpQhwChNB6hTYDOIIC7rxMxzGjfcpA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY4P286MB7477 X-purgate-ID: tlsNG-42698a/1781855431-4C9F600E-F50E4847/0/0 X-purgate-type: clean X-purgate-size: 823 X-ZohoMail-DKIM: pass (identity @valinux.co.jp) X-ZM-MESSAGEID: 1781855472964158500 Content-Type: text/plain; charset="utf-8" Allow ARM32 Xen to be built with NUMA configurations. Signed-off-by: Hirokazu Takahashi Acked-by: Jan Beulich --- xen/common/numa.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xen/common/numa.c b/xen/common/numa.c index 92f8f1cedc..9f53a2602e 100644 --- a/xen/common/numa.c +++ b/xen/common/numa.c @@ -439,7 +439,7 @@ static int __init allocate_cachealigned_memnodemap(void) if ( !memnodemap ) panic("Unable to map the NUMA node map. Retry with numa=3Doff"); size <<=3D PAGE_SHIFT; - printk(KERN_DEBUG "NUMA: Allocated memnodemap from %lx - %lx\n", + printk(KERN_DEBUG "NUMA: Allocated memnodemap from %"PRIpaddr" - %"PRI= paddr"\n", mfn_to_maddr(mfn), mfn_to_maddr(mfn) + size); memnodemapsize =3D size / sizeof(*memnodemap); =20 --=20 2.43.0 From nobody Thu Jul 23 22:29:24 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; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass(p=none dis=none) header.from=valinux.co.jp ARC-Seal: i=2; a=rsa-sha256; t=1781855462; cv=pass; d=zohomail.com; s=zohoarc; b=cZ00SMEp8tJ8gmNYJ7ljC3DH1m6AbMHk4GWrJqDF2AjJtTn8D/XMAji8CTVDupplSSW/974ov41OQabmfNA14LJp5sb6O2itxFB1n0fwn+syCpf5kcjlWFYvB0Rg5NTyf/DyGd5wv6KBgTbPtP0iD4WqpW5OrmMOcYCib3X4fzk= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781855462; 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=m8QNG7rkL1EU6z/StVk8jS/8w6/V0pTdRzTVBAel1S0=; b=TmiTiyFH9RQqEhfUPFOU9dtL3s+OrrAJEdAOhy4Rqzm/TanhsNhVQhU4AD34SiM6hKZncsTDjbSWh5++C++ek2oRAvyqi49u+yWnUdVf1VhN9kN4dtS+y6daamP4WUg1YIDyAo2hC1hIA2OBSYenmcnQtgO4/AuZp1+tf6WHXzY= ARC-Authentication-Results: i=2; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1781855462889370.82930732461693; Fri, 19 Jun 2026 00:51:02 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1341739.1602067 (Exim 4.92) (envelope-from ) id 1waTzn-0005nt-0g; Fri, 19 Jun 2026 07:50:35 +0000 Received: by outflank-mailman (output) from mailman id 1341739.1602067; Fri, 19 Jun 2026 07:50:34 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waTzm-0005lv-QR; Fri, 19 Jun 2026 07:50:34 +0000 Received: by outflank-mailman (input) for mailman id 1341739; Fri, 19 Jun 2026 07:50:33 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waTzl-0005br-3r for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 07:50:33 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1waTzk-00Dxzh-Gb for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 09:50:32 +0200 Received: from [10.42.69.11] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a34f4c7-e002-0a2a0a5209dd-0a2a450bbb74-2 for ; Fri, 19 Jun 2026 09:50:32 +0200 Received: from [40.107.74.114] (helo=OS0P286CU010.outbound.protection.outlook.com) by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.0) (envelope-from ) id 6a34f4b9-5e53-0a2a450b0019-286b4a724d13-11 for ; Fri, 19 Jun 2026 09:50:32 +0200 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) by TY4P286MB7477.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:356::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.139.11; Fri, 19 Jun 2026 07:50:29 +0000 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0139.011; Fri, 19 Jun 2026 07:50:29 +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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jnG2P7oMscvaAbHNYvGlih1B7ab+ckqcR2UmhTxPD/OZXQgvf59ubhaZL2trWu1zR0F9hCvH2iWhCQoCRJ/VjXqAEQwiBa8s9Z2PlsKefs7LicHaVUd1AZf2UHWbx824/DrED4b9umkz/1WCaLNP02+Zuq7u7eZ7+d9xnHGnbytaQB+p6zQj4LgjyjnBwZfDLctV3/C9ZwyW743w9gagXN2No8LqBeRzVQ2hnuH8vTNz4b/xKk68DK5m50eXxyKlqSW9oMBtxEmIXBPoJHNGxcRLOSssxcO4eYTR7qmtaMmiqgf6KONh3RoLNd0kjnZw3KcXuVXe2WNJT6VAjOkxmw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=m8QNG7rkL1EU6z/StVk8jS/8w6/V0pTdRzTVBAel1S0=; b=rfQMneIIRSN3aI91SvGF0CeSg0ABILGhNXuCtT+AQX6RB2cu2vvfgEF5RQo+ZCiYYyVIBd4/ETkvGxqudHJ8tOrD41r+fWMOzl/Pk/JOAa+tqG6ow+e8bXQhbUACe2OeMq3NV40uav5XF8qtvGvWJkygkJViz+4F/Nx7qDU/VPMoDPGhK+ecE/fnutu2iOfH6g7oNlhwa+lIDWAQsr3Xrn2TmAO4XG/63uE0KFWFqPVpAYUijneXNpYHeFD0z0C62pUgiwv0Lpf3+bq5q6k8G89r1MtVuHG/m/asoSFCd8N6XXwU99E5ae3/NiY3kkU8TvwtVhGb1dC32uggqEWpkw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=m8QNG7rkL1EU6z/StVk8jS/8w6/V0pTdRzTVBAel1S0=; b=nYO4baVkvqBl6oG+b8JxClV+C+BngiDpmSfTDsYQfv6ZoO3YKAokdudL1sbNEbKpR3hpSA87esdt0uHdaFjgGIGyIawgcsVmoQC7nsaGz6Sbvr0j11aijtUWF3gjyqHgCgnxY7D7YOTLxy9wZhXqglkwFSZSDYn/OJ6DtBm1i+8= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; From: Hirokazu Takahashi To: xen-devel@lists.xenproject.org Cc: Hirokazu Takahashi , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , Volodymyr Babchuk Subject: [PATCH v3 09/22] xen/arm: Introduce dom0_nodes boot command option Date: Fri, 19 Jun 2026 16:49:57 +0900 Message-ID: <20260619075011.377116-10-taka@valinux.co.jp> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260619075011.377116-1-taka@valinux.co.jp> References: <20260619075011.377116-1-taka@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP286CA0147.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:31b::10) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TY4P286MB7477:EE_ X-MS-Office365-Filtering-Correlation-Id: 883c4c4c-4c78-45e6-dd1c-08decdd76ef1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|23010399003|376014|1800799024|10070799003|56012099006|3023799007|6133799003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: gf38UOvwYUZKWRRak2NFWpoIp5By++qGFhzfjRSzQwUPWdiQx3LmDFJMxlJ590G2fSDuPfz3qLpGWD9H4bBK4OuhZowi5l91prj9IulQjMxYlTdIufS1CxRB6QDHFW2+TA/FBVNfaJMbezw5/Gsj5519IiFhuqnTpGCQILE8g2v4eD07l5pwA9MB8VVjWMnZ8OrABnTO3jHu+5Azjk3ZxM4dGucc/NsldIHdRnC2EEVM6+ByX/ja7ZEsYso51Mtlew4GGT/EsWybPdOEoaLeWE57G04KBSwDCkhACF6RbWmB9kIkatxfUkJbE8ddzw/K+V29xMBoZYJeFnv4W2Q3h9ZQXWakLFaIjqcvUl6IcCUXGlDXfIN/c1iVPsSDBhFIzH5z7OmJtlaiVJdCHXDC9uvDak5ZIUKXv/H2Bm04pn0WkARmWS5p6+3Z4XiR6su895vWd+yKMiBwdTEsLkBP9IOJCv52iMkIp6jdjJf2QAvN8ubhuTo3IWDBZHYXhWWuTKklthvUIXnXRmkWVk6O5jwPJE4zVYL0hV/QAoTZ1Pm5aCQt8spYCy4UgZr5vvUheFOS2qUXGBcWtebsXYlUuM+RKlKT+nQliF88kC4Zz0dFSJVbpIC5k5hCawdW42QDxnhn19au/HVd/5MWjUQvVsZhwGZoYZti7VM2L6UDVos= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(23010399003)(376014)(1800799024)(10070799003)(56012099006)(3023799007)(6133799003)(18002099003)(22082099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?wZLfeMpDFynzkrmDsutbAGTsEuHs30bEOA4rj0wMjd15qspvjO7zQ5ugjeJd?= =?us-ascii?Q?BXIi+cmsSJjwUnel8MCgX01DUMkkH99Wc9RsOU8Z4NUlXfV18Q9FJfVBnzBO?= =?us-ascii?Q?xXiDa8rCZKBKYC5sd0mNHu28mwplL/Mycc4eSOYZObHJfl6dhWFpR3gi4ueg?= =?us-ascii?Q?xGXi8Tgp38DWLLMpofAEF1mjYkUOeuo/uiB3+RoHQWmJ7pnxfy6c1aR6RtgC?= =?us-ascii?Q?TNgCUxTsE929EmwUXoXQWbBGPmVs+OiMHDPvJrKbkv64PHrrkisxEe0ID4q7?= =?us-ascii?Q?TTznz36wrAPJaO24C8ETHzEqdxa4Yym4bUovtv/4Brpz/RZ8dxWSBqh9SRWb?= =?us-ascii?Q?yU+hh1ndTlZDYaGIf9/OyBlh+6V1U0+D2kph0y7JmGRr7bA7R0Bh8YXEtc1c?= =?us-ascii?Q?hbuE/4sRYldA5Xtfon0XIeI/RHZiEI4jcjA6MjqgjVS+b2RkU7jT34MqFrCo?= =?us-ascii?Q?/tcaTvpsMvfAFsrg5fer/v4rlTzRJ0yFuTFMcGUraVRL+kQrAc2RlRidejwG?= =?us-ascii?Q?1WT9WYM9ig56odAOkb5LPmymskqEiroDMvCN8EtkX+rplN6HHhzjEjTN6sa8?= =?us-ascii?Q?t/YreiF8Ol5Q9oNNwT+pP3HWqZ0Yj3vv6oMMkS0ua39HC0BELb/La5JwKAHH?= =?us-ascii?Q?xN+0PmLB23XZHEHCKvv+OLrN8doixZtACMtsqNSF/3+v8adlAeqdTGRA5FRM?= =?us-ascii?Q?yKXYi/QkpfiGhv5VdDqaqMLI6Vt7PkNSEUmM8h5csILxCYxI+jIz0asEiIE7?= =?us-ascii?Q?LIktPLMC/s0b96SqMOcN9nWSZEd2lljAuEPwBjqUTRnHtKcJ1md2Wc8ps72f?= =?us-ascii?Q?ef0EtWL0L/FZCHXTuO+A8eAnQR+7EMCDmQxjMbfnj/jpFLZPByaGaUGOKDHs?= =?us-ascii?Q?I4HwCmOk11Vm9nFpJ1oJnV50cIhYvktNFzlHKK8doVUYCjVoDZUPzqUp6H+8?= =?us-ascii?Q?rdmTHZUBW1PpDuXW2Sf3ZxcKFt1GqSvRBSO8wlTF7MN9BqA8kyBMOoWtc/QG?= =?us-ascii?Q?icVWmAMeppfznEI9XiUuJIYHAEJF7jlSZ6d5+2uu3JY0WPhEJcwqzPZe8vdh?= =?us-ascii?Q?sSze3v7NAhC3fxo77Y03c3J087x0uJu/FAJAtEUFAZVp2xxViPbjOUX0ZYZB?= =?us-ascii?Q?wUELCRPvDKQpF/p70X7ZDqmEsJv04z7fbGIb4p8WBNKuyKQSOiUl3MLFYGnP?= =?us-ascii?Q?zOr8czk80GL0HyPP9jqNM+3TRchV8hDdbrPvYMDlhBtDDdQOJLScc8y4taL9?= =?us-ascii?Q?cD4Nc99xHeMWli74zSU702dvIrRF8W2CUXO+8srEZ2jHrdG1wu0ShmsiLwbx?= =?us-ascii?Q?j1fgspyxLlPgsfL+JC5j9YLxRXB0C+pTlVr5C2nonWQ0kDdvsEUu1ETos90J?= =?us-ascii?Q?K0oWlqGZj50sy1wfZShSkRXckiwMB2dQhOiXB5wTSXzd4qATLTrkA7uJa5Lz?= =?us-ascii?Q?lZlOypg8x07sEKqabwGxhotRX9lho7QHUoYnV8g29LyzexZdIcULI0w8p7l/?= =?us-ascii?Q?Te3aLKwU9UgoP7GBsOLpN5Jlr5dPSb82IGMamysYUJqCgGPNKCWmnhOr2pQ6?= =?us-ascii?Q?wi9zD95o77Q7m/9GHijS7FDj75htyqFhxZ/w8P0nBuTk6ZsUgp1FbqMMnLIi?= =?us-ascii?Q?87XtMLWPRekQyiinpCsqYWrapBccUV8ykqXdZEPDlWlqxcqiYp51d4SvhMTA?= =?us-ascii?Q?7DbSsHeujXL+cl2IjZ1zXWXH2XrwXXHT6PpdaH7ItCDAerKvC7z9TgKKWFGk?= =?us-ascii?Q?6uzhYplgPfKwyg78sLXXp66v/5C83SCzPm+cimLSHlR0KFtUSFkkTf7JntVI?= X-MS-Exchange-AntiSpam-MessageData-1: zWEAvCqconN1Lw== X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 883c4c4c-4c78-45e6-dd1c-08decdd76ef1 X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2026 07:50:29.6933 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Q5O3Zdq/TjqkGx48VaSBDQ4Jaj8wDYK0BJe+enxue4dgt6m6n4HNujLT0kCP+E40UyrT93dyjS0qi/PWrLic8A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY4P286MB7477 X-purgate-ID: tlsNG-42698a/1781855432-4E5E400E-B067A749/0/0 X-purgate-type: clean X-purgate-size: 2067 X-ZohoMail-DKIM: pass (identity @valinux.co.jp) X-ZM-MESSAGEID: 1781855465073158500 Content-Type: text/plain; charset="utf-8" Allow ARM Xen to accept the 'dom0_nodes' command line option. The syntax and format of the parameters are identical to the x86 implementation. The logic that actually functions based on this argument will be provided in a follow-up patch. Signed-off-by: Hirokazu Takahashi --- xen/arch/arm/domain_build.c | 43 +++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c index 550617f152..512ae8e630 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -37,6 +37,7 @@ #include #include #include +#include =20 #include #include @@ -66,6 +67,48 @@ static int __init parse_dom0_mem(const char *s) } custom_param("dom0_mem", parse_dom0_mem); =20 +static nodemask_t __initdata dom0_nodes; +bool __initdata dom0_affinity_relaxed; + +#ifdef CONFIG_NUMA + +static int __init cf_check parse_dom0_nodes(const char *s) +{ + const char *ss; + int rc =3D 0; + unsigned int nid; + + do { + ss =3D strchr(s, ','); + if ( !ss ) + ss =3D strchr(s, '\0'); + + if ( isdigit(*s) ) + { + const char *endp; + + if ( (nid =3D simple_strtoul(s, &endp, 0), endp !=3D ss) ) + rc =3D -EINVAL; + else if ( nid >=3D MAX_NUMNODES ) + rc =3D -E2BIG; + else + node_set(nid, dom0_nodes); + } + else if ( !cmdline_strcmp(s, "relaxed") ) + dom0_affinity_relaxed =3D true; + else if ( !cmdline_strcmp(s, "strict") ) + dom0_affinity_relaxed =3D false; + else + rc =3D -EINVAL; + + s =3D ss + 1; + } while ( *ss ); + + return rc; +} +custom_param("dom0_nodes", parse_dom0_nodes); +#endif /* CONFIG_NUMA */ + int __init parse_arch_dom0_param(const char *s, const char *e) { long long val; --=20 2.43.0 From nobody Thu Jul 23 22:29:24 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; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass(p=none dis=none) header.from=valinux.co.jp ARC-Seal: i=2; a=rsa-sha256; t=1781855476; cv=pass; d=zohomail.com; s=zohoarc; b=Wrx5Qs8uJIL5TKmo/juTz2Y1LUPF936j6u5LH6aj2AvoBUaCn0iI5fJYY+Uu23dKPrvsoLxQWZnA0CeeizjfTeK3D5wD/QWc9a8bdJmyQEES285AYxoduBIAMB1zg6Xet/7OZ+q37Exi8X9tsWYiqgNcrXqJ2DG8HAW+UWonqnU= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781855476; 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=P5jXGN5XTJvY8GDO94y/Kujx+vvvugQUUMTqzPztSCc=; b=FnZWt3er7eL+6XGJYewJimlZD3JyPDK6pfTgjDO3DApWSMD89tw7BC37Ps4UsB7qG3deANUj+UuGEg8mTjoiI5nYX+d22IJxubTV9UPDwhGQxmioGl05KXlbZ9CVLmNexbIbGenZidob4Em17IP8/UZdD9YnLUPZNjL2Rpwto3U= ARC-Authentication-Results: i=2; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1781855476537369.3525177873337; Fri, 19 Jun 2026 00:51:16 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1341740.1602073 (Exim 4.92) (envelope-from ) id 1waTzn-0005vD-Gw; Fri, 19 Jun 2026 07:50:35 +0000 Received: by outflank-mailman (output) from mailman id 1341740.1602073; Fri, 19 Jun 2026 07:50:35 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waTzn-0005uO-B8; Fri, 19 Jun 2026 07:50:35 +0000 Received: by outflank-mailman (input) for mailman id 1341740; Fri, 19 Jun 2026 07:50:34 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waTzm-0005jB-7x for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 07:50:34 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1waTzl-00Dxzh-Ko for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 09:50:33 +0200 Received: from [10.42.69.11] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a34f4c7-e002-0a2a0a5209dd-0a2a450bbb74-6 for ; Fri, 19 Jun 2026 09:50:33 +0200 Received: from [40.107.74.114] (helo=OS0P286CU010.outbound.protection.outlook.com) by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.0) (envelope-from ) id 6a34f4b9-5e53-0a2a450b0019-286b4a724d13-12 for ; Fri, 19 Jun 2026 09:50:33 +0200 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) by TY4P286MB7477.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:356::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.139.11; Fri, 19 Jun 2026 07:50:31 +0000 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0139.011; Fri, 19 Jun 2026 07:50:31 +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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=usEBasDQXTZ8IGzAnrgooUaeNy2Wn4rRbd2cmo04UAlkfSiCInycxEvTRZFB6EEoh2CM3jRir+G/1SiqBPmrQB4lml9Cor1T8gQ9rFBHs7pXTUjUynM740Y/sODPnsbVv5mRrje9efJ82CNA2yQyosE/ob5g111MQavvFsIrcw4FpFrg+kY4P+OdBHwMKSjAAvwZeNY9lZxv0RfDuHHyUiVr+rhqxIw8YxW3D4mfcuh16BNCpq5OoWsUOMkX2g6HWaCM7xyfNHNEYVxSSCC2IT9jhYCLtDHY//8zaOkTBN+4LiS01ygbPp5VF8yNXbL7DoI7WQ3o0vz/QO7xWxv+wQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=P5jXGN5XTJvY8GDO94y/Kujx+vvvugQUUMTqzPztSCc=; b=Q0JeZycmGm5b0p4fobwddUaR/r/N+4yFjbYRLd5hRWbOn+1+EZc6qfJzGmU4nz7YKtW7z3o+TQohH08GeBWDi5vty9mOsi3TtAVaFgb6bEiEue+ZjQv5yAEzxTKh0h/X4iXgkSEt6DHW34WX9Mfm8ULV7lEJw5Sgw9jZzr84gW/VPksp+wAe+eSjyEF9caQ5mETzNQ3o0H/1W2aKctn0um1Cf31bN5DUezkf9FZkGvsjpYjh+zxz3oXiHbO77zE4OYajV/wAU4HRxsPVCpw7pQuPHoy315d4JKlGXskEq5tYXv70njxPTSSX43zbpPmzZ3U1vtiMEe8j6itzpufwxA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=P5jXGN5XTJvY8GDO94y/Kujx+vvvugQUUMTqzPztSCc=; b=KzqIyGg1nxx+2HYYNyk0VlnKg2Pb4vb9n04W0iKQKcJ38iZ+SQh9MRyH5zWTGyiHyc5Dna/bfu3/mS5dGjE/U3dHwr//FOa3txhGnoD8rOdWRfvhpimfVPL7O6dd4meuvZIRxscxRDj6fJQQ78iknmjjTqzZyV3aytukYGRuzyM= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; From: Hirokazu Takahashi To: xen-devel@lists.xenproject.org Cc: Hirokazu Takahashi , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , Volodymyr Babchuk Subject: [PATCH v3 10/22] xen/arm: Set Domain-0 node affinity from dom0_nodes option Date: Fri, 19 Jun 2026 16:49:58 +0900 Message-ID: <20260619075011.377116-11-taka@valinux.co.jp> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260619075011.377116-1-taka@valinux.co.jp> References: <20260619075011.377116-1-taka@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP286CA0149.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:31b::12) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TY4P286MB7477:EE_ X-MS-Office365-Filtering-Correlation-Id: e71534fd-44e5-40bb-fb59-08decdd77010 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|23010399003|376014|1800799024|10070799003|56012099006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: c3dcrBNcHKeXeOLiUlolLmxCCD1iEFSDFVWsJC7eNXlHf0+PSCiX/Kz7r6ybbPE4/58TAtvx8Jmg1Va8byWXpwRii0NtJZExsWcy6vuxeL9uegIQMeYgAp8OKTNFcXEtz7y5Grpzpm2K2I14oFnCBn+XLCjNUNapNGMP/Or7NsO/LgxU5gRpSYvsIPWpJlR3x5mGeDDQ3Q6S7J5MpoKDz6O67LpgxHXIlagu0MP5jKKo9Q2qDC/19VLxeJQpOBtAlsjhCcPNy5ByAITkechSNIzOfJ8hqUEzMXPqOVPrFu4MwHRoAfKjmHxmxEoSQBqM7O2PJ4tveAEUbPRIDo3Tm67qeeopr2SO6SDAvBzGZxcrKkIuvq7AZcet9xOcrJkkWXkGsYDmbyuki8sdK0c0DCoRZzRNsO1UCORusc8sXcYE+gc74QhJRWt3IrFTEkE0O9U1lesp/mZvHfdW2YFbS0aFcMURjP+riENo6VE+FRpg6GwFl70LBlJgCcKoxZw91ip/9j3qsvlL5N2ZnnjHJPVNYlH3d0J0nFDza0+2kIKp9j8VS3es+oBo88IxtdtigaAEUK4QxNlNILaiqGE/1XCMq46eDGS85re9neP1ZNgOxdv90x20zgYT3345SIXsKGw/MRkp/XV4+/GQZAqSN/Oc6yz8/19/pi5Inn91pz0= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(23010399003)(376014)(1800799024)(10070799003)(56012099006)(18002099003)(22082099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?qfvTM70FNf3L+zz9SsVdZvodKV6FFafljSWNM5rBBL7FbpBR1u78k79oxESV?= =?us-ascii?Q?Hw9cjK0WlHDzAzxzcrBtpgHtak/Ots6ZhowGlzr/D2aHZgh1bG/kXgvoPTj9?= =?us-ascii?Q?5uTH+cT+MAFSSV9oenotu8NxnYhcN7X96t7o/+BlbNOJD1ITrIGtu5ywJllF?= =?us-ascii?Q?8sBubqMrdicRAgxqfWoLHc9wbepvahy0OFUJAQxSt4bZsOEj91YBmS20G1J7?= =?us-ascii?Q?TeEVzh00Iu6VjR8i7/e3mavLccVlYBiWqMdH4W425bmR9U0+ONCaOewhE7/w?= =?us-ascii?Q?BvHTDSoVS0NIM04mZI4rqoHRWMT75fojA2EvHNlBnhtwlDbk8uB5WxSW/u79?= =?us-ascii?Q?HOfJXklSQPMiCeRWJJGpJoJUB6BoJtG2UafILYyQyGpAhcqyHkF6B7hn8fho?= =?us-ascii?Q?s6h3hoMI1vXWwwYzpnHqMyPDxoJEkrzmOjjYjzS22tN1zJA5B+6Yy8ieNsa4?= =?us-ascii?Q?Oz5N/O9LB/I+iKHww0/A1EXvz0ZAPvGk2JBJwCNPVUhKh4uw/zOjqCxwOkJC?= =?us-ascii?Q?JY6LnetPg6v8mjjF9tCRwFhhbqfdRDka02Cj6yUXxhR2o3B7v72OhshWfOI0?= =?us-ascii?Q?idPWLG8uJs+U/DX8nk6trO+F7xs48v9XSFwDQOfDiRljikXcVHGderFrbmyS?= =?us-ascii?Q?E63MSu261d2qSS/SFawiMDwTr9M0839KNf8spd9Zy/v6xeWQpKCEtWxozgY2?= =?us-ascii?Q?nuRl4GQoaUQOQdiJ01xJxFrDFBOi0tssWfFRJWphf3ePg5kh8C+7yrx9/lTF?= =?us-ascii?Q?shBl0c95p7X7coO/OE8kzTcosnHHytfSsRIe+tXf163OpD0BRXC+naRbmeQH?= =?us-ascii?Q?ixkoy0kXYcc2WwQ9fkjwL2mv7sCFEwXjHPTTfwYG5+XDxDlc3sqPD6jLoA7a?= =?us-ascii?Q?KrrU2CS60gkXqEcfd51OPvmnsH/yqNIL9CAFIyt4jAmVX3P9vJRjCjw4KWlh?= =?us-ascii?Q?Iqti5hmxVD5lZU4s/8C4EmWxnkEeGSP3jAXV9VyU9pA81ew3Mv0HClO7JlmH?= =?us-ascii?Q?uhGVTvQqepdz/3hFMaLeRsoonHduxe9k5e27DZvtlmcZu9sv+FqjqnroFMpv?= =?us-ascii?Q?Le0xR+VrdtoSzbGsMHZw3d9BsauFzu2fec/LV5kao9V2+QlWhnRWX6J6AaK9?= =?us-ascii?Q?bM2ROmgsHiuBovdqVRGDW1DVg4h0XqGe9WF1oeQlNbqGepZ1x5JnZqgzdMmK?= =?us-ascii?Q?zukXbEk1SnAMaAjAFcjYsuaB6CAVcQ5Ag8PsR0cY8b6IfK6fbmLWlUaG0YF/?= =?us-ascii?Q?FjaolyvkwPyyvCnzwFo1qwd7vCrfeiGp34jxfiWQ1F/DOHcgMdxWwP+y+8Nt?= =?us-ascii?Q?hhnrBQki7jlHOPax11zP9sgvuyEi9BwqL8HsOpCqvjbRUX0ankegLgN9Wo62?= =?us-ascii?Q?dtR1/HCwm7xCYa50IEggVfDAuvl7KMlXNIsN3IOkl8UozZ4FI+3CcEOLku26?= =?us-ascii?Q?wAa/JTOPua3wgvYKe4ELSraM+bADFY5Cruj+IQM/uMokz3ljRL1stFFZebaj?= =?us-ascii?Q?JPBxRQBMuyYGOEx+UA5ke1ycx5o7MMtFFBBkRvi4fK+bUHQOsx+i+JS37n4F?= =?us-ascii?Q?IMFC7y8cAWA3QVEygYzWL1gcC6HFBQJbN0cGLdzI7AScOQLdtDNlqew6SJV5?= =?us-ascii?Q?PySLkPYZyzoFmUmgssvJnQimuu0RJfJ+Y8EC6jH0jShzmOgChvD243gcdMuN?= =?us-ascii?Q?0hVCQlFY1zKaMZ0lrM+q/J6c0tPIN9kXI/jdpUAYEyQKrRKMycUGPwLKB5lR?= =?us-ascii?Q?aYk0J9PfqOncG8jcZwqfFA6n1FzpbxR7SGd2xxhuXKZexikY/flzvJZKS7qv?= X-MS-Exchange-AntiSpam-MessageData-1: 9dADd4zpMR6LHQ== X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: e71534fd-44e5-40bb-fb59-08decdd77010 X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2026 07:50:31.5704 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: TktVRVKAyAdkPyHaNVewrZaoKiFmap8YGOoBnyrCy1GaNHkZPAzvBIc0ZgWWj3uYzEm7VDJtcfIvHOIhv9O1ig== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY4P286MB7477 X-purgate-ID: tlsNG-42698a/1781855433-445F400E-AB86C881/0/0 X-purgate-type: clean X-purgate-size: 1182 X-ZohoMail-DKIM: pass (identity @valinux.co.jp) X-ZM-MESSAGEID: 1781855477193158500 Content-Type: text/plain; charset="utf-8" Set Domain-0's node affinity to run on the NUMA nodes specified via the 'dom0_nodes' boot command line option. If the option is omitted, the node affinity is configured to use all available NUMA nodes managed by Xen. When Xen is built with CONFIG_NUMA disabled, the node affinity falls back to using only NUMA node 0. Signed-off-by: Hirokazu Takahashi --- xen/arch/arm/domain_build.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c index 512ae8e630..1dcb5b3455 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -2035,6 +2035,13 @@ void __init create_dom0(void) if ( llc_coloring_enabled && (rc =3D dom0_set_llc_colors(dom0)) ) panic("Error initializing LLC coloring for %pd (rc =3D %d)\n", dom= 0, rc); =20 + nodes_and(dom0_nodes, dom0_nodes, node_online_map); + if ( nodes_empty(dom0_nodes) ) + dom0_nodes =3D node_online_map; + + dom0->node_affinity =3D dom0_nodes; + dom0->auto_node_affinity =3D false; + if ( vcpu_create(dom0, 0) =3D=3D NULL ) panic("Error creating %pdv0\n", dom0); =20 --=20 2.43.0 From nobody Thu Jul 23 22:29:24 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; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass(p=none dis=none) header.from=valinux.co.jp ARC-Seal: i=2; a=rsa-sha256; t=1781855469; cv=pass; d=zohomail.com; s=zohoarc; b=EiHfuKGRhEVBYlEVkSxk+dSNDCU7Kck7/n/Za0p7M5a2IJwbLKpiGhlUoODNQ0ETRDzGnqGg0RMVoWqD7iW84pbZMWB0O8jSk9OypIrHmGolpDw+bWb1VjRrHRgG60FEKsW3DO7M79zotJGOG8SybZmp7ng+b1/zJRg6VNraW4g= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781855469; 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=IxE/LJsgLEOrbULLoyo2Fstd730hRv6gD0h0NlRuEO0=; b=nXptRTKa8+cyFnjn0glAGkml9k1s/ylZYLmvykr5k5+uXFCf2GsvMfxD30EZCglctASypP66HE0EHyWcT9VNfh89PZZ+gAZwg2egwoK6NNkMCNqEXjCQym2RTnfJuwMWb4q5+cMkArz06HopaoyBQwByDZWCgUKppSh9NrPDViY= ARC-Authentication-Results: i=2; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1781855469364649.684985687593; Fri, 19 Jun 2026 00:51:09 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1341742.1602089 (Exim 4.92) (envelope-from ) id 1waTzr-0006gO-SR; Fri, 19 Jun 2026 07:50:39 +0000 Received: by outflank-mailman (output) from mailman id 1341742.1602089; Fri, 19 Jun 2026 07:50:39 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waTzr-0006fv-MF; Fri, 19 Jun 2026 07:50:39 +0000 Received: by outflank-mailman (input) for mailman id 1341742; Fri, 19 Jun 2026 07:50:38 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waTzq-0006Wy-0q for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 07:50:38 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1waTzp-00Dy3W-Dg for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 09:50:37 +0200 Received: from [10.42.69.11] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a34f4c7-e002-0a2a0a5209dd-0a2a450bbb74-20 for ; Fri, 19 Jun 2026 09:50:37 +0200 Received: from [40.107.74.126] (helo=OS0P286CU010.outbound.protection.outlook.com) by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.0) (envelope-from ) id 6a34f4ca-5e53-0a2a450b0019-286b4a7e0f22-3 for ; Fri, 19 Jun 2026 09:50:37 +0200 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) by TYTP286MB4024.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:185::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.139.12; Fri, 19 Jun 2026 07:50:33 +0000 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0139.011; Fri, 19 Jun 2026 07:50:33 +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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JJ9T8n4yMSbVQ6qtsu6OWyoQfnYu6M6eL7C7SUAcL+x4JrTR2i2hbqwbFgBqa3PyrF/xJsPyF4wl+3z8FUnJpfy+HG4ofhG2Ka7iI+TiANSXz3ECe6++swuP4idZaG5z4RNfZzckEWledoFCOgM953TMYXWYf114+jpha33MStnUWuawLeWOAb7JzftcE0Hg9DNdbNoInYrB9X3MzzBEoLjYITEL0GgId6fgUSVBmPewWaPLtFpwkqWkWpsR4HSLUnKFPG5M2OfsExEht/SkrniaGZeEnsP1eB+cvtfeIEwQtCRhqahETfGkpphf/VECw7VYe7RpDyW6/yAxXYy+QA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=IxE/LJsgLEOrbULLoyo2Fstd730hRv6gD0h0NlRuEO0=; b=Ut6C7UUfIPaL5RUJ8Xnf5DPnIkEAcQLTL7pNMxHG0NMOFbAL4PirOnYbh8b7mCtmThF4NfjEq8kwH0CPrcEq3/sxE7rDi8jKpwJU5y07NFFZNxQeSG7k26pECg7INeBSVWgdHl3m4cuvyz547yVcDKMxZWL27riD0jXji8tCWlQvwB1uriVylkfacpV9Q55gH3drr8j8JO8jGAe25u5dJSKUAq5V8IFZMddTtu2N0GQuruziG14UJnp76xfxWiGQr/uwX8dxSJqImJi+apnsa/BtPtQ/tS0kfDR+SftZHdOV8BZvgCdBS44hosIZOoa5H0Xf7G3pdQTB6fUp9p6YJw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IxE/LJsgLEOrbULLoyo2Fstd730hRv6gD0h0NlRuEO0=; b=B3nmSa3NToLaV8p7qD2OGRZBDd2HiocU81JnEo7UV2wJzumNkEZc7hGbkrsd6cTA4sSDaRc3o59/zi2iUBwvzbiKd2olaTmIpnAmpk87IEkSdubQimwdSNkw3YojuEBLzBramhR0/snEkaXsmwps17D5CKnmCEQR3BGlvdwcIZ4= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; From: Hirokazu Takahashi To: xen-devel@lists.xenproject.org Cc: Hirokazu Takahashi , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , Volodymyr Babchuk Subject: [PATCH v3 11/22] xen/arm: Reflect physical NUMA node IDs in Dom0 memory DT nodes Date: Fri, 19 Jun 2026 16:49:59 +0900 Message-ID: <20260619075011.377116-12-taka@valinux.co.jp> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260619075011.377116-1-taka@valinux.co.jp> References: <20260619075011.377116-1-taka@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP286CA0144.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:31b::8) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TYTP286MB4024:EE_ X-MS-Office365-Filtering-Correlation-Id: 46622172-f401-414d-ba13-08decdd7712a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|10070799003|366016|23010399003|1800799024|18002099003|22082099003|56012099006; X-Microsoft-Antispam-Message-Info: 67xne7Dn5mGa68qTM+JVO7esh0bnffZ5Wl/iUsGIW82Zj9d0LfTTfKDspA2ZiIEqEf2MHdfToxzJNAdYaqJ97Uy415s1uf+VlWPhxFNhYgeF8teuvgb+1fnWtS96j8AauX9fYRMYjajvcS8IEZ2BJ49Q25CwFlwlu6aZAvsqaJPySt2JXXwOVGSm6MQDEvz7Ih472mdiROr0qV7eqsAXHQ9smeZulnxYO2oeZ51262qzc3hcWJRsro8q1SfFdz7UWHGvOlEqNjgw0qy5Tn3Qh3CvZpaF0qefaPatFLKF1rBHnRMjLxjgtkTIevxgmoDzpK3gXhG/qlhSTNvd9IoUJJk4wgnXv0l+j9heUSkk6TQ0m84CZEMGl6FHMg3fAzrzOW5yjq7lU2AwqILL27TqpyKSgXxaiuarYF12fo9byQFtsMq2ne+XyNV+ppHdnuXLL/zuue9aEhzXW8qnb0n+PMiRH8xgXqME6gV9NYes/l6/LnAnUBGAyNTGJCI2stYNIEF+JN/kaxhFQf/9Jz4aOHjKX9eiZT6HBn2ss2oxgcGqJiMVcfYG5C7KVnxFJC7B3yWDxFE/nlK+p8aTfjDfo1zWVlUuovpFqUCSPns3f0iL8mYkY49NSiHE7JqtZzKWxrUfzG9Fbk9o74M8nKPKWCmhDKmKeIomToymT4RGavM= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(10070799003)(366016)(23010399003)(1800799024)(18002099003)(22082099003)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?4YW8xV+kzBpOvSkwPk2JcwlPoVqv2p2CXuB8OFDSkvHYEtzVtD8Gcv+OmuBZ?= =?us-ascii?Q?1iwuDctleSzp50DvgtdcAaEDHjU+ukpsXxS1HZcQRklqjrc9rc9gDfMk/apl?= =?us-ascii?Q?MjnydvzJYZPdIRU+V0oKiqkVyy0+2xuLFSSAGF/9bU/MbRLINHxh+hYlSBos?= =?us-ascii?Q?wEFvWMSk/ciMN1X5wd9orVr6JfW2NwZcETnMuTvUa5UGfDPrYFXt95icUhck?= =?us-ascii?Q?z7d+oKpZDq6YqWU0rCVNsmBqQD9W9J7JszbMTr7hVzOFKn09XpZiRlYIsvnU?= =?us-ascii?Q?pBZl9syYiTEJbZs9kED3k2xlXZdJHASG4Yw+N5IF0ABeOsKVUe4C9A8UqxVo?= =?us-ascii?Q?jfsqvcSpO8ijxHIDO2WPyelvVbf2+qm+f4eg6pWHo0iln1z+CSlgKjZLJMSZ?= =?us-ascii?Q?owIGhIpKDz1NNeh895SLp6yV+FaUYT90vowZeEuJwAUGBVq2E2apLpAJJL2y?= =?us-ascii?Q?dUO14vJP15q9m2zuPpdI3yZtgIO/TEGJGQl6AYIh20ksQstekZxvWIicghcU?= =?us-ascii?Q?/Pzg0vV+A88FEf4TY+4StblesSVMJ07X01PmwiW+NCq/yZ7I57CUYPKhqZEd?= =?us-ascii?Q?iUGouhQDLp4Qi1QuxT9FDN5N0lZjgizeo4B+Ar4Em+R7/ZhZeqfx5CFOCS8M?= =?us-ascii?Q?1FfzB44bAT11Do1oMYJWhzd5q50XnZ+2ihEXZBUumNdTYWH50PWN3hndvtnR?= =?us-ascii?Q?j/oJAcEV07qBUsFuPbU5yn8TXeHd61h/BQHmD0FNrJgav6fLLxfayv5pohD/?= =?us-ascii?Q?687oaGKNEtfNde3i3RE5EdgFE1nc+OlqMgYlDpIWvQogna2bvkJCNoTSDs+P?= =?us-ascii?Q?kF9uBo0m7AwVgWulfpEYNHnbgoogP8ALGyXx3cLb9PkxxZx1aS1djToV1GKY?= =?us-ascii?Q?tZKmEA3Xalwx4hCDrfQGCUhJjKNU8ervYAq1aQU8bbpegICTW4sjuMB8szBc?= =?us-ascii?Q?n5AfKTeBLQ2ra4zdyT+vhOG6Yq0QDKMoquFEXVVFqW6zS8g3C1igBPi+IJbJ?= =?us-ascii?Q?sealPZ9ljjDNJmX1EgQv03GgBcfCxcRb3bpabq5XMsNNdasnh/xJ/adJtkVS?= =?us-ascii?Q?Vf5OK23OoUZtSjaNnlIdQ2lm8DyRa5izvokXX/VxG9WepBBP+dIXiXr3ojCM?= =?us-ascii?Q?ZoSN944vQunxxX44ZjENhL661TpdgkdM09vlAW9KCW6ocQ0E/zs/fboLdMq0?= =?us-ascii?Q?gLVO1HO1/xmQi0Y/9QYp+NV/JD3Et+GNBEpKnp/Beae/dLRf5tevc0i5Hsda?= =?us-ascii?Q?akhxRsbSC4sg7njDY3SHW9kybS/2soXAWxxmKg7TLq5p+FJqZDlVnl+Y86cq?= =?us-ascii?Q?hCoA7P+8zvV0MSd2iU9NZqUj1+OZ1XGrh1LIo5jiBi2pywtCNAxSgdYhnv+g?= =?us-ascii?Q?zSAoPH681PS3Ynk4c96GdpR2RFBAhyn+RZCB+3ogalHyQw9hR9couXUKApyo?= =?us-ascii?Q?OGTLDPDDWeHXoVkQT62pNpVgDB5Jx6nBtQQX1iwMatgRTBiJUETgjeIqjol/?= =?us-ascii?Q?WlrEuNJgYfHsoUuxS+jxn+2cC6Q9WiOJk+/yBPHSGKKa/MY6bdlYsR0ooLmJ?= =?us-ascii?Q?QkypDTosNbcG7BJwiFLFfVpIRaMLoVVid67N64h3qofiMgfisKW5iza/o0Lr?= =?us-ascii?Q?UFzU5EqrkPqAn6lPicl1RNHFdob1N0ERQ4Ea9Zyhqg/+ajg0CmYGR/wXP4yx?= =?us-ascii?Q?eJrl9n6wTMCDGMXfgJeuoG530hKuG4JvR6R2oFGg0b4nbPmM4s/DjC3Jq8g+?= =?us-ascii?Q?L891u9R1H20hpWZdedIw6+iFqp7tlNXm53Cboh2S0dP/okNq1C2LU465HQ9g?= X-MS-Exchange-AntiSpam-MessageData-1: 84qGtomQo+JdqQ== X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 46622172-f401-414d-ba13-08decdd7712a X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2026 07:50:33.4489 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 6wMkl0+aSy6+1qB6b/UKkCB9hsE/tQvoFtk5etyF17GMDznNPD0kpfiqXNdHTIuev/4fSRUeKJwYYLAU2uJSjw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYTP286MB4024 X-purgate-ID: tlsNG-42698a/1781855437-4DDF800E-5B61E1C7/0/0 X-purgate-type: clean X-purgate-size: 6863 X-ZohoMail-DKIM: pass (identity @valinux.co.jp) X-ZM-MESSAGEID: 1781855471261158500 Content-Type: text/plain; charset="utf-8" Extract the physical NUMA node ID for each memory bank allocated for Dom0 and apply it to the corresponding memory node in the Dom0 Device Tree. This implementation maps the physical NUMA node IDs directly as Dom0's virtual NUMA node IDs. Signed-off-by: Hirokazu Takahashi --- xen/arch/arm/domain_build.c | 22 ++++++- xen/common/device-tree/domain-build.c | 88 +++++++++++++-------------- 2 files changed, 63 insertions(+), 47 deletions(-) diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c index 1dcb5b3455..7ad53d85b5 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -195,11 +195,26 @@ static bool __init insert_11_bank(struct domain *d, int res; mfn_t smfn; paddr_t start, size; + nodeid_t node =3D 0U; =20 smfn =3D page_to_mfn(pg); start =3D mfn_to_maddr(smfn); size =3D pfn_to_paddr(1UL << order); =20 + /* This code is temporary */ + { + struct membanks *mem =3D bootinfo_get_mem(); + for ( i =3D 0; i < mem->nr_banks; i++ ) + { + if ( start >=3D mem->bank[i].start && + start < (mem->bank[i].start + mem->bank[i].size) ) + { + node =3D get_numa_nodeid(&mem->bank[i]); + break; + } + } + } + D11PRINT("Allocated %#"PRIpaddr"-%#"PRIpaddr" (%ldMB/%ldMB, order %d)\= n", start, start + size, 1UL << (order + PAGE_SHIFT - 20), @@ -225,6 +240,7 @@ static bool __init insert_11_bank(struct domain *d, { mem->bank[0].start =3D start; mem->bank[0].size =3D size; + set_numa_nodeid(&mem->bank[0], node); mem->nr_banks =3D 1; return true; } @@ -234,7 +250,7 @@ static bool __init insert_11_bank(struct domain *d, struct membank *bank =3D &mem->bank[i]; =20 /* If possible merge new memory into the start of the bank */ - if ( bank->start =3D=3D start+size ) + if ( bank->start =3D=3D start+size && get_numa_nodeid(bank) =3D=3D= node ) { bank->start =3D start; bank->size +=3D size; @@ -242,7 +258,7 @@ static bool __init insert_11_bank(struct domain *d, } =20 /* If possible merge new memory onto the end of the bank */ - if ( start =3D=3D bank->start + bank->size ) + if ( start =3D=3D bank->start + bank->size && get_numa_nodeid(bank= ) =3D=3D node ) { bank->size +=3D size; return true; @@ -261,6 +277,7 @@ static bool __init insert_11_bank(struct domain *d, mem->nr_banks++; bank->start =3D start; bank->size =3D size; + set_numa_nodeid(bank, node); return true; } } @@ -271,6 +288,7 @@ static bool __init insert_11_bank(struct domain *d, =20 bank->start =3D start; bank->size =3D size; + set_numa_nodeid(bank, node); mem->nr_banks++; return true; } diff --git a/xen/common/device-tree/domain-build.c b/xen/common/device-tree= /domain-build.c index 30a59abfa7..c3452a4037 100644 --- a/xen/common/device-tree/domain-build.c +++ b/xen/common/device-tree/domain-build.c @@ -504,15 +504,50 @@ int __init make_chosen_node(const struct kernel_info = *kinfo) return res; } =20 +static int __init make_memory_sibling_node(const struct kernel_info *kinfo= , int addrcells, + int sizecells, const struct membank *bank) +{ + void *fdt =3D kinfo->fdt; + int res =3D 0; + u64 start =3D bank->start; + u64 size =3D bank->size; + __be32 reg[DT_MEM_NODE_REG_RANGE_SIZE]; + __be32 *cells =3D ®[0]; + nodeid_t node =3D get_numa_nodeid(bank); + char name[32]; + + dt_dprintk(" Bank: %#"PRIx64"->%#"PRIx64" Node:%u\n", start, start + = size, node); + + snprintf(name, sizeof(name), "memory@%"PRIx64, start); + res =3D fdt_begin_node(fdt, name); + if ( res ) + return res; + + dt_child_set_range(&cells, addrcells, sizecells, start, size); + res =3D fdt_property_string(fdt, "device_type", "memory"); + if ( res ) + return res; + + res =3D fdt_property(fdt, "reg", reg, (addrcells + sizecells) * sizeof= (*reg)); + if ( res ) + return res; + +#ifdef CONFIG_NUMA + res =3D fdt_property_u32(fdt, "numa-node-id", node); + if ( res ) + return res; +#endif /* CONFIG_NUMA */ + + res =3D fdt_end_node(fdt); + + return res; +} + int __init make_memory_node(const struct kernel_info *kinfo, int addrcells, int sizecells, const struct membanks *mem) { - void *fdt =3D kinfo->fdt; unsigned int i; - int res, reg_size =3D addrcells + sizecells; - int nr_cells =3D 0; - __be32 reg[DT_MEM_NODE_REG_RANGE_SIZE]; - __be32 *cells; + int res =3D 0; =20 if ( mem->nr_banks =3D=3D 0 ) return -ENOENT; @@ -527,54 +562,17 @@ int __init make_memory_node(const struct kernel_info = *kinfo, int addrcells, =20 dt_dprintk("Create memory node\n"); =20 - res =3D domain_fdt_begin_node(fdt, "memory", mem->bank[i].start); - if ( res ) - return res; - - res =3D fdt_property_string(fdt, "device_type", "memory"); - if ( res ) - return res; - - cells =3D ®[0]; for ( ; i < mem->nr_banks; i++ ) { - u64 start =3D mem->bank[i].start; - u64 size =3D mem->bank[i].size; - if ( (mem->bank[i].type =3D=3D MEMBANK_STATIC_DOMAIN) || (mem->bank[i].type =3D=3D MEMBANK_FDT_RESVMEM) ) continue; =20 - nr_cells +=3D reg_size; - BUG_ON(nr_cells > ARRAY_SIZE(reg)); - dt_child_set_range(&cells, addrcells, sizecells, start, size); - } - - /* - * static shared memory banks need to be listed as /memory node, so wh= en - * this function is handling the normal memory, add the banks. - */ - if ( mem =3D=3D kernel_info_get_mem_const(kinfo) ) - shm_mem_node_fill_reg_range(kinfo, reg, &nr_cells, addrcells, - sizecells); - - for ( cells =3D reg, i =3D 0; cells < reg + nr_cells; i++, cells +=3D = reg_size ) - { - uint64_t start =3D dt_read_number(cells, addrcells); - uint64_t size =3D dt_read_number(cells + addrcells, sizecells); - - dt_dprintk(" Bank %u: %#"PRIx64"->%#"PRIx64"\n", - i, start, start + size); + res =3D make_memory_sibling_node(kinfo, addrcells, sizecells, &mem= ->bank[i]); + if ( res ) + return res; } =20 - dt_dprintk("(reg size %d, nr cells %d)\n", reg_size, nr_cells); - - res =3D fdt_property(fdt, "reg", reg, nr_cells * sizeof(*reg)); - if ( res ) - return res; - - res =3D fdt_end_node(fdt); - return res; } =20 --=20 2.43.0 From nobody Thu Jul 23 22:29:24 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; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass(p=none dis=none) header.from=valinux.co.jp ARC-Seal: i=2; a=rsa-sha256; t=1781855474; cv=pass; d=zohomail.com; s=zohoarc; b=AaT9+7c/BGR44y8INhqTzETHfEDFMisZlicV4NxCEXW/9Zdo1jwWhe9nOBt8RrC9QOtaFYo3I1ndXoVTRV3QZ6VLPm+jFAnNRy0ugoW5OT4DBNDRgmWP0X7qygW9dOHOAlBKMpwhneB83RzCUbaifJUeNs0BCBI34HA2eGQ6lr8= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781855474; 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=moxaBUEqcN1Ar7o5vjGkq1W7snnGpWMRypv+OJNZZ08=; b=fEp1WHqGUVvz4uTiJFBJ2xLUtJIUnd+Kvk7C5V5w2jPodEcZToS5CU+Mqt6k6ZJ62OKvK1P4zsaLlA4suYM5lP9YYlW8hjJ388E15lBGVKLM7OW04RW9/AGogoblUdTVgMT6KuHRKzzsi/6lQ3CesNVpLLjtjPoriSZBrVitDDM= ARC-Authentication-Results: i=2; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1781855474053970.8100495573162; Fri, 19 Jun 2026 00:51:14 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1341746.1602097 (Exim 4.92) (envelope-from ) id 1waTzt-0006vL-A1; Fri, 19 Jun 2026 07:50:41 +0000 Received: by outflank-mailman (output) from mailman id 1341746.1602097; Fri, 19 Jun 2026 07:50:41 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waTzt-0006v0-1R; Fri, 19 Jun 2026 07:50:41 +0000 Received: by outflank-mailman (input) for mailman id 1341746; Fri, 19 Jun 2026 07:50:39 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waTzr-0006cB-25 for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 07:50:39 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1waTzq-00Dy3W-Ey for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 09:50:38 +0200 Received: from [10.42.69.11] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a34f4c7-e002-0a2a0a5209dd-0a2a450bbb74-24 for ; Fri, 19 Jun 2026 09:50:38 +0200 Received: from [40.107.74.126] (helo=OS0P286CU010.outbound.protection.outlook.com) by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.0) (envelope-from ) id 6a34f4ca-5e53-0a2a450b0019-286b4a7e0f22-4 for ; Fri, 19 Jun 2026 09:50:38 +0200 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) by TYTP286MB4024.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:185::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.139.12; Fri, 19 Jun 2026 07:50:35 +0000 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0139.011; Fri, 19 Jun 2026 07:50:35 +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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XTlVHBsT0VGCVtdb5sr0nqKCsEE49c7NB1e+Id7lvGQg/5QuV21aCMkWkutdn9J5AKZK5SFUzdwKqLGbF6F8w8UKUMhePjWCaDcM8BuWdBH9aOyEcFoxY8mtov6Ck6LEVJFh1Nb/w3rtfkqRAZnirh+h5XjnB9dy9c7KfgVQHcWnAq/BLCa9OJC5jEqQPwdOEcaS5sCF6AcBzSqcsJ3w4bP5lBk88VdiOZorcXcJ7RYpL9jTGP4+fcDsfTegCe4seBAVSNOUZUYC0zu0RdyLI+HGxxh1t50hW/0/UEnV3/Gx1yd7EPg5zMG3zdk51EUIn3lzYq3GMKky9kNUD9cRRw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=moxaBUEqcN1Ar7o5vjGkq1W7snnGpWMRypv+OJNZZ08=; b=U6LG9lu8W/4GKlNM12NaCafZTe559sJw1m/UDROB2QPDtzIy+SSbIQ9YBPIpcQIBoLmJTI12ftI3+54nUEYu0LAOPhsJCK8Z5TcvN2PKbujnu20d9f4KuD9AHQPfqYhuKyfOAE64INil0hSBlZa4uWQQu182tpsWo1dKpBgZk0FbQoW9hzkrCYtOf1z250GKTqHr4L9TCOQJObAeucmHGR3ePYZY4C28zrq1HN/tWLCoftnUs+DbJ/f4ObJxhXptmfgfWEUtCbDXsvKlI0GrCtuakkizsBBTbqGD0AcGPohtS6oC5upTaO/a0IHDLjXiYDGAhcbjA3SFcUT5jC/h0Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=moxaBUEqcN1Ar7o5vjGkq1W7snnGpWMRypv+OJNZZ08=; b=M2nPPclWQ7tHAT0VEJUucQUBZgw2r4zmId7waWbPPNvACmqbXlGjYTLknBNiFThmrQPkwvYwg1VGA6+T0QOxmW4PHlhbqMm3XtZdd6DLoWje+d4J4eA/p3jrccFiDm79DYLQxeu/5LOfDtZED0/ELuf+Yv3B/8bF+yipTrEhyB4= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; From: Hirokazu Takahashi To: xen-devel@lists.xenproject.org Cc: Hirokazu Takahashi , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , Volodymyr Babchuk Subject: [PATCH v3 12/22] xen/arm: Balance Dom0 vCPU assignment across NUMA nodes Date: Fri, 19 Jun 2026 16:50:00 +0900 Message-ID: <20260619075011.377116-13-taka@valinux.co.jp> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260619075011.377116-1-taka@valinux.co.jp> References: <20260619075011.377116-1-taka@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY4P301CA0030.JPNP301.PROD.OUTLOOK.COM (2603:1096:405:2be::9) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TYTP286MB4024:EE_ X-MS-Office365-Filtering-Correlation-Id: 57e115f7-cbf6-4949-dc05-08decdd77233 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|10070799003|366016|23010399003|1800799024|18002099003|22082099003|56012099006; X-Microsoft-Antispam-Message-Info: ijVp9t5beFlLa31MoPLpNTQoScUC1jFqo8AbByTCb01VYaWv0npIsZQG49AtWUisfnkw6fJ/I1ysZOZuRtCUOuYsxFlPYpukLy/pMtNTlwkvuQ3zDSLpnI1ba4k9Gy62pdwevqB/9cMlTO1d0Rf95g0tiRZM77IF6gCbsBREhaRNz5hgnGPaP6QZ60sagGo5xUQAQ88o1Gy9/HeN+lizkFNf5J3Ro6KNN5xaXq8i6OGorxJClKpcZqCkLmQZ/yZkKlcBd8PfedGI28rn2sHAaMOUZWDNYuoXOZXlLw4E+3vNvKbKnrWYrbJJr9FCAW616fiGgjQnIszxoe8jzK8I6We/OfPqbZVgliWramdx6kHQNXPcF/16iafyfq1vQ4dG9OQTaORMOXGU3J7AG5PQWusElfFTIKQUKQFUib6RigV1Bd84h5CyAOvjoWJkVSIbOcrrD3Hf/Tr4UNoETzA64FsxGeFSPOTbI2OAU0H/PYKYY0uFykv8Udq2Xq4A/WPDppzVZEGKBL0261nXBcfcWa0mj29QYDzFdceDJIuAZopXizQ6tJQ6Ag89yen5xAhHgVEXJrTynQ22o1NJ85qJXUdmpAAWcuy5ZI+gEz9YgKi6PDFG0D/5wjTC8EyN7qRD7knp1qX6Fs0kZwTYS8bObm5Tw+nneha8x1wghaSFXL0= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(10070799003)(366016)(23010399003)(1800799024)(18002099003)(22082099003)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?m+33504QdE1SWg/yWJnK0RdIP73g8yFJulRxIJFAtbrb/KhLgh+zPSlAVilb?= =?us-ascii?Q?MJgQyxjkcDvPJJOXpZa7+SsuzjBU1wGsVOOHRp7JS9w6EBNf/dOe/YUnTVKv?= =?us-ascii?Q?6a37nNfKqdtkDDiBu2XuYvbHesDsHUSJ6bP13hiF5i/0GaoXdtMTBSbbnOY0?= =?us-ascii?Q?P7Paieo5RiiSV7KBNmmXzPpkpRv8JUThAY3OZem2dNTyhk6/MTSs7L1dTEzd?= =?us-ascii?Q?l4awzfT9xC4gaYDU20EDxcbYPv0dydWa0p5AeQCorurIztsOydPUUMj8vVGC?= =?us-ascii?Q?/K1WeTempxPlDoS7IVG5BEsGAvw/fTi30LXJDA2vfv8+XMbzT/YGYmb7fyxG?= =?us-ascii?Q?B3w0AXntJ/HQBuxuDNpF++ZSfTAjJKHaymFYP3fF7mkPlQARAiNlEabccFUH?= =?us-ascii?Q?Erre5XQfKLDJ8FC1ezjFp/M2E2IFCsK7VvCCohc56S42/pPtHl0EnRpPKUEa?= =?us-ascii?Q?5sGD/Q9epE3BJmuNW2uc3FY4XjltWQcQHOXCSRzYf/UgmbFpkivVgwXr9HQl?= =?us-ascii?Q?fZcJfIf7+Yb/jkQP6g6BCBegB6hNiJ7klhWH25g9KbpcSVsp/91BFn15UhJL?= =?us-ascii?Q?TRlWZVII9wyN3++/ZoT/7NqiRa6Stzl8N3x7d7VTMNBdfmCIpOE6bs+ftJO3?= =?us-ascii?Q?yrOAADI1Onnbvr19SP8mTisJSftkzXOALmfL/6+aDpEmStVgfctFfDF+GkDs?= =?us-ascii?Q?XGk5vGkraxhdoVejIWjNHrPAv467m7J5dTXzPx9UFbtEP6epYrXhiDkCdWrz?= =?us-ascii?Q?uBd96tnESuSNn9/mTo4OHGc5fe2c2Y7K5EUVJ2fZYp6u60pBuQMJPmdFewk4?= =?us-ascii?Q?RL1A60xEfd52ABcli14bIzLnrAUA5LltKqobC8yISQ4z15sv8BzRIRtMMNGI?= =?us-ascii?Q?c91t/D3fDI4B/lKTD9/1JZR7W/5E7Zfla67zHwpdsGRsNVMFb4KI511DUd2i?= =?us-ascii?Q?jOL21LaTjBaKIleTp7wD7+goOApbFC8SVq75IdOsDmd1tBfH9N4JWrpEI6l6?= =?us-ascii?Q?M/QmcOoyBXi4nrfBWgIckxljW0w1XJrZfZOU0YO009w48xqav0W/FMP8Whzj?= =?us-ascii?Q?1FEMMyh0+up1Ydp7QfMKwWh3nv8LeNpE0cKgveYg83XbEqV1I9vxXleWaPKL?= =?us-ascii?Q?L9CAB7cXIVbfVCZXeEFwkQiZcBN2vWaEVqRjwIlbtrFk1wBKpkV8A/pbrABE?= =?us-ascii?Q?ly64WFUlw+e6vmrCC2rZTeixl0lfVR0PQSxC8H73hBV/F7lLEWIm4X2nW/RE?= =?us-ascii?Q?aSQZupLUaDN0vMQL9BN4IlE4WLCeyIb2wZvRWvOvlbhCRc1GryO6RYl0mXcB?= =?us-ascii?Q?NG2AxD7K7lLk5/IcRFpnC3EpBllnGf1GUcDjgBLQd6rd5FdwFZOKc4njqDzF?= =?us-ascii?Q?nw3RYvfUJdSpeJsOjNYJDiCBwmbIDhWcgduEJtler/cEkEVgPZ/evsAQM0Og?= =?us-ascii?Q?XVvCTiJVsuY2LDB/a8bu3mR9TZFBbwC5RToh4dFQxrrfgcwc7BdNe2NyAEI3?= =?us-ascii?Q?LnrmvFwGYouUltTBkcUCGbCJRLeTfkT40gBiVDygp9+0VO3kVVW7dThAtzfv?= =?us-ascii?Q?6fspJAq0YANyWuXo1CnPQvPGWfkFJry0Y11UN9dTKPSk7RkPeudm+sCu6tEf?= =?us-ascii?Q?ePQLIVQg2QtJFeCuhAZwJI88H2BmLUjE9SX3JwSpXDWGlXNVIK9oI3esxE4f?= =?us-ascii?Q?dBB8eqKiu/KiuO4IQvaXTn2Vj5JHMSccJFT7pcS0n5wg7clT2RRkpB5I7Fmi?= =?us-ascii?Q?DVspDHX7wPuLNSn54nXU+0BjCUZn7JBHMofm/SiqipPUmkq8ikF2SiKROOq1?= X-MS-Exchange-AntiSpam-MessageData-1: zPHgWvGnrLsgfQ== X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 57e115f7-cbf6-4949-dc05-08decdd77233 X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2026 07:50:35.1819 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 7d1VZSFEzqqhvG6zhnoZ3wqepoxcxp7EpSgQ17v5sAosajoM/7FSYtAfwKzpl9hCdyN3UeykuJ4Spyj4Q95RpQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYTP286MB4024 X-purgate-ID: tlsNG-42698a/1781855438-4CDF000E-FC6A253A/0/0 X-purgate-type: clean X-purgate-size: 2071 X-ZohoMail-DKIM: pass (identity @valinux.co.jp) X-ZM-MESSAGEID: 1781855474951158500 Content-Type: text/plain; charset="utf-8" Configure the assignment of Dom0 vCPUs to NUMA nodes, aiming to balance the compute load across the available nodes. Signed-off-by: Hirokazu Takahashi --- xen/arch/arm/domain_build.c | 46 +++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c index 7ad53d85b5..f5fd065435 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -1233,6 +1233,34 @@ int __init make_psci_node(void *fdt) return res; } =20 +/* + * Map a Dom0 vCPU ID to a target NUMA node ID. + */ +static nodeid_t __init dom0_vcpu_to_node(const struct domain *d, unsigned = int vcpu_id) +{ + nodeid_t nodes[MAX_NUMNODES]; + unsigned int nr_nodes =3D 0; + unsigned int vcpus_per_node; + unsigned int node_idx; + nodeid_t n; + + if ( nodes_empty(d->node_affinity) ) + return 0; + + for_each_node_mask(n, d->node_affinity) + nodes[nr_nodes++] =3D n; + + if ( nr_nodes =3D=3D 0 ) + return 0; + + vcpus_per_node =3D (d->max_vcpus + nr_nodes - 1) / nr_nodes; + node_idx =3D vcpu_id / vcpus_per_node; + + ASSERT(node_idx < nr_nodes); + + return nodes[node_idx]; +} + int __init make_cpus_node(const struct domain *d, struct kernel_info *kinf= o) { int res; @@ -1915,6 +1943,24 @@ int __init construct_domain(struct domain *d, struct= kernel_info *kinfo) vcpu_switch_to_aarch64_mode(d->vcpu[i]); } =20 + /* + * If Dom0 has specific NUMA node affinity configured, bind each vCPU + * to its designated physical node. + */ + for ( i =3D 0; i < d->max_vcpus; i++ ) + { + struct vcpu *v =3D d->vcpu[i]; + nodeid_t pnode; + const cpumask_t *nodemask; + + if ( !v ) continue; + + pnode =3D dom0_vcpu_to_node(d, i); + nodemask =3D &node_to_cpumask(pnode); + + vcpu_set_hard_affinity(v, nodemask); + } + domain_update_node_affinity(d); =20 v->is_initialised =3D 1; --=20 2.43.0 From nobody Thu Jul 23 22:29:24 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; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass(p=none dis=none) header.from=valinux.co.jp ARC-Seal: i=2; a=rsa-sha256; t=1781855469; cv=pass; d=zohomail.com; s=zohoarc; b=f4qHa/04iBFhHXhsmYspNTb8DJfIdv0Q3PKSE4tpKFgWVEcV8w9DFDQZ0dR30jd3JIdtdVcacwCNS9kYzaDerNcHWiJQwWvb0ZSxG21Kj3bPPoG6J31Z9r05kqahTLRgPQD9AsL/+3nXI/MgV9OME90ybvM5NQ3x2KH437P0+RQ= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781855469; 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=2wxJbHcM0BcD9NfoU7heSrzEQA+9Zt5KHHIexZfNnfE=; b=mEvoLVVRafePgCnh5a8ZHVO/OWaoIyQehOHXmwffNE4py6KFudyMZRIHKkId6ATSz3mq97tegrDkhTHYZpB0qD8VLCv8BgWYCdb7+hLJyos6E/ZANvJMrDKIGqGrRvJdre85HOA+KLCVWnWov8wHB4WeWEOn+kVkeOkr1RaH2hs= ARC-Authentication-Results: i=2; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1781855469262768.9830338293431; Fri, 19 Jun 2026 00:51:09 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1341750.1602103 (Exim 4.92) (envelope-from ) id 1waTzu-00075J-3I; Fri, 19 Jun 2026 07:50:42 +0000 Received: by outflank-mailman (output) from mailman id 1341750.1602103; Fri, 19 Jun 2026 07:50:42 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waTzt-00072v-Sn; Fri, 19 Jun 2026 07:50:41 +0000 Received: by outflank-mailman (input) for mailman id 1341750; Fri, 19 Jun 2026 07:50:40 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waTzs-0006gv-4v for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 07:50:40 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1waTzr-00Dy3W-Fz for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 09:50:39 +0200 Received: from [10.42.69.11] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a34f4c7-e002-0a2a0a5209dd-0a2a450bbb74-30 for ; Fri, 19 Jun 2026 09:50:39 +0200 Received: from [40.107.74.126] (helo=OS0P286CU010.outbound.protection.outlook.com) by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.0) (envelope-from ) id 6a34f4ca-5e53-0a2a450b0019-286b4a7e0f22-5 for ; Fri, 19 Jun 2026 09:50:39 +0200 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) by TYTP286MB4024.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:185::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.139.12; Fri, 19 Jun 2026 07:50:37 +0000 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0139.011; Fri, 19 Jun 2026 07:50:36 +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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=BVTw9w7YZiRVGVo/YGG4Nu8g3+GbVL5uMvrbNF7cMbJE4CkLEW1tuBe7vsim0s1+98MouaHfTlXMiSrRngYFW9aV2Re8RY1jGwKFmwsLDQdXNZrKrrWNKOatgbTLCdxh51+HkEhQQr0X1mCqNCuHoYB2apd1uuJY5D20k/iS0wRzJX4GKnUt1YUkmHmcaazQwZ7s8GRM1qGiJelPq4ggJuTE3msI66goC5O/BZWm0ye0mOlfjD9WVDn5+Hg+d5moH3z/L9OkHhiWkjvONGz4jUpWyQvO43BHw9bKV32Hzcok2gY1ZN+7HEwPHyrSQRDhWF6yN3Iy16tpzcWGSV1dFQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=2wxJbHcM0BcD9NfoU7heSrzEQA+9Zt5KHHIexZfNnfE=; b=f/7SrqLV03fT/DDJyPVHsaLtsIvvS5r/lgUd/0uo0bBniKqcGjRWleb9I8o/khw8E7nU6cQ4PRqGdJ4CS+TwERvhT+i72W9fAOPmLhRwpOCMRw+i5GbdRovrKPjdaE2cX5O409MHRTCPPL3QXCFKILTt1fbZRMhg9j6DhCHjJs0xbOO9KbD55FEOI1bKa520aFh0xwAxCkNEFEEBAV7+tu6KXmGTUU/Gsf464a+PNqKUf1ySUMu/WWv+c+y2qYzSYhdibSe+dq0USie2TsuFG4IRjTEwLJ1KThkfhqQfF46jZepaaomDrdrCJXXYISK81YJT8wT+o3XUwCDD5FCPUw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2wxJbHcM0BcD9NfoU7heSrzEQA+9Zt5KHHIexZfNnfE=; b=S6S0pEFZRdavq2lvb0SlX3IPY1iNGK4y36KJYxg/RNpJR/YMHXrDlhRlegggLckGKb8J2wD+RlrhOMLZD3lTaMg5HaO6GhxZR8rFXNTfnn3rJ5yMqqHhtbuSGCivOtQYzIm4uQY/VlWP8tb/na/n2hQgEDNulYU846EMCeWQOpg= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; From: Hirokazu Takahashi To: xen-devel@lists.xenproject.org Cc: Hirokazu Takahashi , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , Volodymyr Babchuk Subject: [PATCH v3 13/22] xen/arm: Export Dom0 vCPU-to-NUMA node mapping to Device Tree Date: Fri, 19 Jun 2026 16:50:01 +0900 Message-ID: <20260619075011.377116-14-taka@valinux.co.jp> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260619075011.377116-1-taka@valinux.co.jp> References: <20260619075011.377116-1-taka@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY4P301CA0036.JPNP301.PROD.OUTLOOK.COM (2603:1096:405:2be::19) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TYTP286MB4024:EE_ X-MS-Office365-Filtering-Correlation-Id: 54822c0a-c555-43ba-441c-08decdd77343 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|10070799003|366016|23010399003|1800799024|18002099003|22082099003|56012099006; X-Microsoft-Antispam-Message-Info: NWocCvDB5IUPcIsUjdS7nYG/BQUUp1D/c5ORyyBwKlic0xqiS76Yc+mleiaF+05cWL7lTRj5A8QB7lhb+8FWgwnsfNazY6F5lD7E8JD/Vdhq/8nFavMGGEIibGQUpQAo44BD5wB3HjUCd8auDiGBfawWS5DV9oKPZyOX+ZkSSwm/Jg6Wj4CmACOtXj64tjrWr2RGLC4yptiACMFv4fZfhfpFNn1N+9Tg+H4+vquM27hTE0eWRHxB+M8lnAMt6tL9XaiBRV2SHbbXFG0z82dTCDNs6JEes6ejzDFqNTsvT/om7Q4SgeB0EP5M+B9UlfR7qF91iqZF0TPvpTBkygFHwE1G75RGAvnM5AFLkCZPuaIz+EQpjtFWXo/7BakQmVKTU7J0KELMRlU+ZF8yln35oro9xsYQHEZfJ5R/yeF35KmKhC1Q4LVSRPVqZaCAeYoRr30QJ4Q6S6ieNdmyadN/rUupj8eH8r3KnXM8RrF1VQe4+iMBTDtt13Hu0Biw7GSihPh8N1E0t1LAl7rGWtN1SKdYc5jNabxhqbfKkRz/w4Xol/wOjolGoLAzEKYuWZvKvIGjKlnEk8UejZ0jwuhEhezPDvnuUvlizye1NRzDuRhfrpaEyWaEUNMQHKkZCfV4ASO2ldxsH9KnE7GGny9qdO0EeP/zIV/cjUL0oqyz4gY= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(10070799003)(366016)(23010399003)(1800799024)(18002099003)(22082099003)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?qKGD74jWTMwtFlDBlhw6734tfFWOLFv2YOvpOO/YKEyJsH60nHZaedU55TFh?= =?us-ascii?Q?LJC4k6OJb2NDLbo6L9/nuSisL1ayvlmCP0YU2I5mz7cmhwuIfVla688ufR9m?= =?us-ascii?Q?Hkwmuq74iAkoquhkvZQFjLPKPm1wBrOn2x+krClhXX8SZ+J4Q9CKhN1NsMG2?= =?us-ascii?Q?AgfR3bT3+zpLtk/+Bqx7vvHYThCboiwPgwe5Y/MIysKH0MOtsLyhwmgYQkS9?= =?us-ascii?Q?e5DotAheRUvL/w5fieYb7KupRtNQfGnJnc+j8M66JcaeeROpP+Sb/yCQCiZ5?= =?us-ascii?Q?zc8RXpHq5c1dZzV/ukzth1NIieudmGCdSfpnMHQyPK/htibl+iOH7r7kVdOA?= =?us-ascii?Q?kfOY/8zNTSrpXf/wltI0uY4VDBFLcx68JACVtuCjvOZCyqELu9Pz5kQra4zi?= =?us-ascii?Q?GJhZC/NI2MLLE+PCMJYBvmq1qRnS6m8NS4Vp/gI2CkarLs53670lHVlwlPd6?= =?us-ascii?Q?/m5Z1n7vgv2nA/CisZM9menXZnTTqFJDOqjn1g7DHyHQoiOpVa9GwmpV1yeu?= =?us-ascii?Q?DaYKgud7R7KqoBC2BXqIHFetCwFtS4V7xS2B8W8BKI9AzZfFh8YZc8kBiYMp?= =?us-ascii?Q?rYZhcrGi0LhRtI9MxQIcW3JV5hFTxDandGVKWHvOmz2sX6KZ85EKaztHSl3X?= =?us-ascii?Q?ftmtp3qG5Wvh/CHrU5XjxLgxck/YKoiuomef1RUU/Tzyc65H0Y/afQfKHCxf?= =?us-ascii?Q?u2UFnRMA52zzkeftQWwNgU0E0pr0HQqxZ07xm06HSY1bW/AnCuhJUe9RGtNi?= =?us-ascii?Q?OtNZQXTTq5iyv2fZAJybThtIogSg4D0GoOkouZSO7rVwk5LVYgPHtqjU2n5I?= =?us-ascii?Q?XqFr/96wZTfb97f8+O3BpX1xD7cLrfe/MXg71KPYtT+iuel1Bbpbqt3Hl0zs?= =?us-ascii?Q?pCLioAwH+xElu7t7CGcG2xheKsnHqbIrUQlkS/NwkZSxA9ZqPRi4eseZdvgb?= =?us-ascii?Q?2JyvINSnv2+X3lttIu8QBJUuuOcnwuX5CmWLBIKWgR6Ny9uxxuEcPd1R2Ewt?= =?us-ascii?Q?loOo914gmQ54f4tyYAHFGNPyz+1RYJwtW7TCIMq2nFnU2kFoxSphG5cpN/NO?= =?us-ascii?Q?p+Ah4RJpJLnA5JQ/mrV3oAClUrOfknanib5+f4O2TLNI+kICk7SD0npKLoAx?= =?us-ascii?Q?JQlRKaSyoVYqHgriltZIDO4qlFZOvJCTqZqhKyWN2+xVLjDqpAblTYHl0041?= =?us-ascii?Q?AaLTYhEdeAktphHvpoQcL462S8e4ixaEg24urqQHMIXgDVw8pcFTpYL41pZ9?= =?us-ascii?Q?+XdVqPCqJzG3bW246PI8jaRmiobNaTxrTfhKON55JMx/ys8qe1QEu2lnj7/B?= =?us-ascii?Q?yxKs03qMi2YmykkGNimUXqHB9EiVkX80g1kqMlznszJ7CFTnSPHgE52aIG0O?= =?us-ascii?Q?XYbyV+v7vsKO3hHBavQ0REezfeL67LydIiufU/3UO6x9XoBv2bTqWTT9M5vb?= =?us-ascii?Q?nwmaBgtFkHCHNHWCPAgJGcOjC+Vn2Hu2BAFNKflXmH0dCXGunDA8L8Mj5kaA?= =?us-ascii?Q?3f28Qq9qLhHAQbEDemRiQczgS0pQRLycRR5ufdKIh+9B2KuwAoOxa2ImffK2?= =?us-ascii?Q?2YHEiqfExGj6IQK3HAPdwpCFKPyoiPQI5tDVovDQxTVIYxyIa0/d0mpA1had?= =?us-ascii?Q?/C+XaiyAeh6ZSycXupAYKLhBttLD/CuyFzax7jfbrbC4o8NN6M0bX3T7wF1M?= =?us-ascii?Q?YTpfJjvB+wJAPvzNrwTQQpCX4vLqFRIMj2l/ZgIX+v2SGzznuc9349RkDqn+?= =?us-ascii?Q?4EtO0cWL7v/QKT8CWFH6FMA6bn83q1hJVLm/APwrqLAPXlzMSj+CT7QMDLsP?= X-MS-Exchange-AntiSpam-MessageData-1: MctpQsvSsbD3Jg== X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 54822c0a-c555-43ba-441c-08decdd77343 X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2026 07:50:36.9550 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: v5UvyjYVlCTV/uvvHpOd/7l+0dKAFT1Z0wOCd+s88NQQpzBaNu9aMeK7RBf1YPgpFCbWMltWD/JHsQU4nP6TWg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYTP286MB4024 X-purgate-ID: tlsNG-42698a/1781855439-5C68400E-68852E94/0/0 X-purgate-type: clean X-purgate-size: 942 X-ZohoMail-DKIM: pass (identity @valinux.co.jp) X-ZM-MESSAGEID: 1781855471157158500 Content-Type: text/plain; charset="utf-8" Export the mapping between Domain-0 vCPUs and their assigned NUMA nodes into the Device Tree generated for Domain-0. Signed-off-by: Hirokazu Takahashi --- xen/arch/arm/domain_build.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c index f5fd065435..b4783fcfc9 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -1381,6 +1381,14 @@ int __init make_cpus_node(const struct domain *d, st= ruct kernel_info *kinfo) return res; } =20 + if ( IS_ENABLED(CONFIG_NUMA) ) + { + nodeid_t target_node =3D dom0_vcpu_to_node(d, cpu); + res =3D fdt_property_u32(fdt, "numa-node-id", target_node); + if ( res ) + return res; + } + res =3D fdt_end_node(fdt); if ( res ) return res; --=20 2.43.0 From nobody Thu Jul 23 22:29:24 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; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass(p=none dis=none) header.from=valinux.co.jp ARC-Seal: i=2; a=rsa-sha256; t=1781855502; cv=pass; d=zohomail.com; s=zohoarc; b=iZd4Tjd67YhxMK43KmRaRKfysRUO4U7kdMHlyE7EdW3ILdHn/fG2hlAl8G508PW6jT3/Qavw61tmT16MwPZwOZ2qScawh40CicGOhB5EFjGMI0pPl9W3RVP8q8qK5SswjsDorTtchnWwIRXRV+WfmeJ6NWj1WjvWe3osnT+bEmw= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781855502; 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=z0WClwWoPG9QZSwKRNXVdSlrLBLvrdbvn531SGZtWAM=; b=Vmj6aJIm5olRTfANZaVw2DpEpJs8kMbAYxs5p/ilJCclGQSeVk/wUPKvqJcObvj5cj9Lr1vPysWtJQQs+hCgRTzs5fNknkRIerOcJw/3iGhE7dHsFY3R4idSQ6e4ajwlPpklSWiBzXfTPKTcsKb4FFpXGG30Irk86kW75okYe9E= ARC-Authentication-Results: i=2; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1781855502423441.86678052787045; Fri, 19 Jun 2026 00:51:42 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1341755.1602116 (Exim 4.92) (envelope-from ) id 1waTzx-0007lR-K2; Fri, 19 Jun 2026 07:50:45 +0000 Received: by outflank-mailman (output) from mailman id 1341755.1602116; Fri, 19 Jun 2026 07: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 ) id 1waTzx-0007l8-Dw; Fri, 19 Jun 2026 07:50:45 +0000 Received: by outflank-mailman (input) for mailman id 1341755; Fri, 19 Jun 2026 07:50:44 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waTzw-0007e5-P6 for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 07:50:44 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1waTzw-001qUf-5x for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 09:50:44 +0200 Received: from [10.42.69.12] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a34f4c4-2eae-0a2a0a5409dd-0a2a450cb99e-38 for ; Fri, 19 Jun 2026 09:50:44 +0200 Received: from [52.101.125.75] (helo=TYVP286CU001.outbound.protection.outlook.com) by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.0) (envelope-from ) id 6a34f4d0-94a4-0a2a450c0019-34657d4b8662-3 for ; Fri, 19 Jun 2026 09:50:42 +0200 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) by TYTP286MB4024.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:185::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.139.12; Fri, 19 Jun 2026 07:50:39 +0000 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0139.011; Fri, 19 Jun 2026 07:50:39 +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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DiHVHu4VAR5R+0uhqY5GOhSqebxFGeW2w7V7K5V/eBTy/MmsTV8G5zTVE8bZCySRipxyCWhhrDfUO649q15BH6a/QX2ABaftwKDLoFeaNlwXchu6vYPeeQJiPBVym8qpyGako3e8/YRk6sEDvSVf/db1claE6XXCY0QI1qMyFs6Al0Wo/iz7UFYbVpCOIh1nA77kXUWE0zjHcLWfWp6xL5g1Ge+eC8V8IOfa2vsNm+ZuQCh/6ixiUIvgwIvXxRg4tV5xcM7wetRLpPgTaRnXhEgmgz6f2O+WS4j5/q7u1ZbU/slndwILKTizuIqHkI76nZ6SyQhLkSQjd1KME8b5lQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=z0WClwWoPG9QZSwKRNXVdSlrLBLvrdbvn531SGZtWAM=; b=ijSUBZCxlhY83Hp7HMotDcQLx4nkfU2CKovuylwd7j5Bsp1CYEPJus06tbvydaOYtHRdX8QeSK1FOgk79LCWesIgz79yP9RBAjrIWR6dcHfOnHEseQaxy1N8SBxybTYl0tu/8V0kVCZ7VlC3ycvCYJV2hBlEe6sv6KCe8CeawGREuvz6rEBa/iJd18PLZPgTxODyTi+np+unEZmZAzG0WrV3cQpaMrsjeqfEuri01yytnbISUAmICkMs63cufcD5FtZERzrqpTJ3RW2T9f2i7OAHKUUvcDAYY+xlITahM060tDjZ51lcIHETNOxR4KWJCHBf6v56OUbi1M5mKHUv8A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=z0WClwWoPG9QZSwKRNXVdSlrLBLvrdbvn531SGZtWAM=; b=ESzMuOup/OdeYbf1lOj1o9Cf+Mnd6cNaXx2toazJinhjiJMM0kaXg0yywQhvBRhydcBfB8ZUTvR2qcnukNt5sjdAD0VDwUQnZsb6ZjMw/kJ67ZCErZnu70JkSyryQIzxbewHfJb8fAulfIZmuzcGyRPlwZxji4I4dJNpuGNaBDE= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; From: Hirokazu Takahashi To: xen-devel@lists.xenproject.org Cc: Hirokazu Takahashi , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , Volodymyr Babchuk Subject: [PATCH v3 14/22] xen/arm: Generate distance-map node for Dom0 Device Tree Date: Fri, 19 Jun 2026 16:50:02 +0900 Message-ID: <20260619075011.377116-15-taka@valinux.co.jp> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260619075011.377116-1-taka@valinux.co.jp> References: <20260619075011.377116-1-taka@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY4PR01CA0099.jpnprd01.prod.outlook.com (2603:1096:405:37d::7) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TYTP286MB4024:EE_ X-MS-Office365-Filtering-Correlation-Id: e0c05263-1cee-4145-3f0a-08decdd774a6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|10070799003|366016|23010399003|1800799024|18002099003|22082099003|56012099006; X-Microsoft-Antispam-Message-Info: ziKKeHFc4iMWK7yKuRK8k2WJNVYo5EXN7sbGBFgZ8t2F74mDPHVHxvY17kdzvV6q4F9Ce7tpfNTYOlBzucTFeVNiuJLQnKJQtuydyKvHOyB/ApCPyBZELJRUc7cCxvUxulSx6Q3kNG0xbMd5PMgbTC5mXyF4zhXrRyloAdgUX0C7QPQJqrSg3BaXa1zJk2rtdRRTII5J86p3rIzMny6nDskttn8MypPep0ib9A+ddOfVRDuMyJGW4Fd6K6mqLSQRFdl1BZNa2gxErs9oesaol9Jbz+vlfKMo+tcDNcwTLiUvKXcYPUF3Gct+A5iKFc30p+moR4bfrk4XlxaBN3oz1qVT6DCvn4829+X4YgT1KgE9c+hb31/flaSGie0O9bdXV+7fnsE+Q97bybIbd5U3sDoenVD2laIsy3MMQLVEWfO3oV1WVAQYwdclKeiEzvU2DuClk7vO0b+RA3uMnrQYtu8FLrtMR6D2Gf2GyeyvOobqISzgpmTPXR+lf6BvaZ0b2TOb+jAj7pVZ7aSCWoF2vdyaPOCAll+dboNOjSacr27bnbgApHH5NHNTubYY/Tk40KB0WwuZOiy1b1m9/nNhuHKd8e7ndT+ABsYokU5MPlqWdowx+sKJHWy1bPYRexZM1v3rbyVM9YkA0oDH2IeLt+8uA584kdCsLCqgPGpZhFk= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(10070799003)(366016)(23010399003)(1800799024)(18002099003)(22082099003)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?T8+n1cK4hMJT8FlcK7vIL0t4zIZ18Qt75/nvzI07QZuYqd7xfoOEljCfnzPs?= =?us-ascii?Q?zVo3O2FXNWe/tWOw4uva7Q88BAh/VtBtKdb6vpj0smKGyZMD1mraGef8MY45?= =?us-ascii?Q?eD8N5KY2xqMaypUdN8WqrmdvbACItWrrRXqPyDm7wT8AHl1U279LNaEy1u5U?= =?us-ascii?Q?i8ouZETID71emHYZdL8JeZx/WgGlq+W+eHBXkTvfNV3eJXwCR2O0Ynw41hvB?= =?us-ascii?Q?8rfE1A8HZiwDIG5WvDQWN7LRCpFdbHxIu04+c48r6dP+L7jjUubrMoyZfb3Q?= =?us-ascii?Q?QuaNLUqkrBMMlPEm1GtBh4rtDowOoIYOwT143U0DbKaIjFXbNuROy93MC+0v?= =?us-ascii?Q?aUIzAumvcU7mDxITcH/oQKdK2lRut0qj7tb01CmDxYF8kpbHWZboISC33Osa?= =?us-ascii?Q?U1Nu1QIpmd6d/TtVmGNMLpp4z44NCYZZv8fCQjEe7iXG7nV7taTjoOfvQZZG?= =?us-ascii?Q?Vx8poeXHlGJSP7Gs1+btivxrffDOiAVe1ZvMTamMPjmrtzMY8HyYtYq/TGPi?= =?us-ascii?Q?AMvJh7HZp0VMOH8Kufa0SrHBBbhbQmtgmrKkamx1bFxrbVj1e9XFTAKnBo1W?= =?us-ascii?Q?d5877avvPSJaoE8MSKSyiMWdkzz/Byfy8P/eaTXRGNpabNC5FkJoB9T2S+Ja?= =?us-ascii?Q?cJTn4dADgFL1rhrJIAmRo5ghPjwwSL/O1gYXBB5JjLgCjjbIoh6rHMtqZrFn?= =?us-ascii?Q?o2HlaXCB1oW5j7LW2T3BaF0cc/fuEjAAV7/HWDsLbR+GfWwIomTo+Vb6uO7v?= =?us-ascii?Q?Ir6MfAtqTwoBa5KuATQLCN8MA7hHiKzCmCktCPBf+p4L2KsmLF0ZBUfLGgh9?= =?us-ascii?Q?kUJhlkyLS5TWeGcWorV9k7ENPW6NQceL/+gEyi0JiypIJ7Uta10nNsUS0pL4?= =?us-ascii?Q?/SKnleZJmXTbbvb1BaRmzwYD8Ezm2rptK/RgQCc45O6UDPFW5bJddpm/qA2G?= =?us-ascii?Q?vgI6WqAVDd8HerJlUGNnv6yOTRNC4L+vL45kz9yvYQ6Rq87l2YoTyCS9t9TU?= =?us-ascii?Q?t+5NglsGisqwDIiBkMsq7b4x85NVUgmFsRmtWU0Dw+TT4mOOqcfSwKxi6vBi?= =?us-ascii?Q?BW2Ip20Av0/4Se0pZJJnHCdQUWaPiyTbrrzqlujTp5vnFVOWmeB6JTCvUf4l?= =?us-ascii?Q?FDNPjP+sHeIowI0qzaCkkH1iLHrT6ymAnNfcy1qRZy967/k/Hwzs+dv1fzNd?= =?us-ascii?Q?piCrK7Hd/o+YLWjcfo40yiBFFDxtwqlQ44ldZN7bTAOg8frRviGkHMrYBEEA?= =?us-ascii?Q?Tc6KNjjLs0f+WMDpiNOvSfOuwKMS7nKGQVYNzqqcXPoQvG0sSrsh/ahFP1WX?= =?us-ascii?Q?eCSQcWNizX82fwR+BuPNPbrcT5jVHQHyQHnG3y90U9xyZsSQS8qpkM0S+xq4?= =?us-ascii?Q?n0gI3xtx1kyJP/5rQG9v+fm6RucobxGdp5OHxh3p0ebHhAH/8VMzhEFktg94?= =?us-ascii?Q?nTwoKVuvfaBhd5zk9zu+R/1VbVFxj31I46DtDZVq9C7Duda+aqOSFRyUMQy0?= =?us-ascii?Q?6BXjGl+uZCxR6NjlQv8Ki8b/2vT2+z/oDh7uhFlW0y2SxPpjJZFVMnM+9lwb?= =?us-ascii?Q?bTMSzomCBWTY3PSL7ZOsnwADdqP7q3uKReASFkF6f0WNKl7CuKKrmtjX6dT5?= =?us-ascii?Q?cHUcQS+ISWUtgaphn4xMHcTWLYlcj6bX/cGeUW2Y5NKKtX6xCYKVan/TKOxd?= =?us-ascii?Q?VXT5v1mPAliNEyraUDAHyqQlZCVBZODPTQDbMTuiwzSxLyykXJWiVvK5Vu21?= =?us-ascii?Q?UMmi76tPUiuyvLQ7KqJW7hFaCLfNCe4AYzC2HBLdnxMLFx/vo4dYm8GbueFG?= X-MS-Exchange-AntiSpam-MessageData-1: 5jqKkky7jdn0Mg== X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: e0c05263-1cee-4145-3f0a-08decdd774a6 X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2026 07:50:39.2807 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: MMp/7cNvEGDRiBdgCiXjyuoN0djxcmFmsfmVTXy9/Zx82NZgnMIyQUQhPhmPe5xJYBd3ZhjdXHpifszY93OLvA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYTP286MB4024 X-purgate-ID: tlsNG-d25034/1781855443-51FF5ABF-287CB1F1/0/0 X-purgate-type: clean X-purgate-size: 2755 X-ZohoMail-DKIM: pass (identity @valinux.co.jp) X-ZM-MESSAGEID: 1781855503147158500 Content-Type: text/plain; charset="utf-8" Generate the 'distance-map' node within the Domain-0 Device Tree. This ensures that distances are populated only for the specific NUMA nodes assigned to Domain-0. Signed-off-by: Hirokazu Takahashi --- xen/arch/arm/domain_build.c | 50 +++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c index b4783fcfc9..c036721f45 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -726,6 +726,51 @@ static int __init fdt_property_interrupts(const struct= kernel_info *kinfo, return res; } =20 +#ifdef CONFIG_NUMA +static int __init make_distance_map_node(const struct domain *d, void *fdt) +{ + nodeid_t from, to; + unsigned int count =3D 0; + int res; + + static uint32_t __initdata matrix[MAX_NUMNODES * MAX_NUMNODES * 3]; + + if ( nodes_weight(d->node_affinity) <=3D 1 ) + return 0; + + for_each_node_mask(from, d->node_affinity) + { + for_each_node_mask(to, d->node_affinity) + { + matrix[count * 3 + 0] =3D cpu_to_fdt32(from); + matrix[count * 3 + 1] =3D cpu_to_fdt32(to); + matrix[count * 3 + 2] =3D cpu_to_fdt32(__node_distance(from, t= o)); + count++; + } + } + + res =3D fdt_begin_node(fdt, "distance-map"); + if ( res ) + return res; + + res =3D fdt_property_string(fdt, "compatible", "numa-distance-map-v1"); + if ( res ) + return res; + + res =3D fdt_property(fdt, "distance-matrix", matrix, count * 3 * sizeo= f(uint32_t)); + if ( res ) + return res; + + res =3D fdt_end_node(fdt); + if ( res ) + return res; + + return 0; +} +#else /* CONFIG_NUMA */ +#define make_distance_map_node(d, fdt) (0) +#endif /* CONFIG_NUMA */ + int __init add_ext_regions(unsigned long s_gfn, unsigned long e_gfn, void *data) { @@ -1576,6 +1621,7 @@ static int __init handle_node(struct domain *d, struc= t kernel_info *kinfo, DT_MATCH_TYPE("memory"), /* The memory mapped timer is not supported by Xen. */ DT_MATCH_COMPATIBLE("arm,armv7-timer-mem"), + DT_MATCH_COMPATIBLE("numa-distance-map-v1"), { /* sentinel */ }, }; static const struct dt_device_match timer_matches[] __initconst =3D @@ -1741,6 +1787,10 @@ static int __init handle_node(struct domain *d, stru= ct kernel_info *kinfo, if ( res ) return res; =20 + res =3D make_distance_map_node(d, kinfo->fdt); + if ( res ) + return res; + res =3D sci_dt_finalize(d, kinfo->fdt); if ( res ) return res; --=20 2.43.0 From nobody Thu Jul 23 22:29:24 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; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass(p=none dis=none) header.from=valinux.co.jp ARC-Seal: i=2; a=rsa-sha256; t=1781855481; cv=pass; d=zohomail.com; s=zohoarc; b=BPrsyo7ovLis9fE1iJYVa3loaScInTV0mO46pL/dAhO2fDwDDhdBR5zOEYsh6+zmAL7fJppencQcr//Asbgb85fGr2e8c8XWjchYRjbD6HNNTKuWZCiZ1UWmTBKz8lsKm9Va/AKM5YqW++chMyCKejWlti4prIYckH4t08wvNxg= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781855481; 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=gevVPhmJDfeBhPDt7bTqXXZzC2OXbkPPQ3tykLpIMiI=; b=i0Qlvp2TKgCJiNStJNxuzer8KuoC55WgPVDRAJxccU0njmDocY7x72sTNbiZEOY584qdccDOKBxTDFk8F2sBMsrDLDXk0VL69q/aP6xYLMLx3efI1Bhv52KhJpIbUhy/qA6MlM4itoAUzXBTTl4wcSjWXFIm6kaUu/K62YsXN0g= ARC-Authentication-Results: i=2; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1781855481546947.8331378910763; Fri, 19 Jun 2026 00:51:21 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1341757.1602125 (Exim 4.92) (envelope-from ) id 1waU00-0008Me-42; Fri, 19 Jun 2026 07:50:48 +0000 Received: by outflank-mailman (output) from mailman id 1341757.1602125; Fri, 19 Jun 2026 07:50:48 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waTzz-0008LC-Sb; Fri, 19 Jun 2026 07:50:47 +0000 Received: by outflank-mailman (input) for mailman id 1341757; Fri, 19 Jun 2026 07:50:46 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waTzx-0007m8-SO for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 07:50:46 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1waTzx-001qUf-8T for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 09:50:45 +0200 Received: from [10.42.69.12] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a34f4c4-2eae-0a2a0a5409dd-0a2a450cb99e-44 for ; Fri, 19 Jun 2026 09:50:45 +0200 Received: from [52.101.125.75] (helo=TYVP286CU001.outbound.protection.outlook.com) by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.0) (envelope-from ) id 6a34f4d0-94a4-0a2a450c0019-34657d4b8662-4 for ; Fri, 19 Jun 2026 09:50:44 +0200 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) by TYTP286MB4024.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:185::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.139.12; Fri, 19 Jun 2026 07:50:42 +0000 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0139.011; Fri, 19 Jun 2026 07:50:42 +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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=CBpCzKmTzGC3RE/ijY/AP3GTl2HVw8NISXO+SW/9O2N7Bcl8lVmjy0T7EeNsPQwBbLAzAnfDjqvcZWjwnzG/sYq4IIv6qqXOepF543NukGA1y0lt29Cn1hahkg8WlVfiCwOzcmLHVh1ff9tpWI5mzqmj/omPI+ZYuVSCrSmXT9u9442TSYQQf9WWvLstSnkBfUrtr1mCqpEJxobFFsFYpi/Ve7sSMwgcYh3sKDLSv2xJJxQrlJzBPYIF+tcvfeBnpWrlqPvbErXoPJ4diZOM0lkSLT0aiDG54rV2Gale5iMnqM0BgsvQ/h8uKdDLM3a5n2OP8OiUfu23bUIG2Yx7+A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=gevVPhmJDfeBhPDt7bTqXXZzC2OXbkPPQ3tykLpIMiI=; b=hcfhnbUStrZMTxw7o/P/H9nX616LdyESEG3hSOBWhvPElTzR7A6wI9aZ0vWxLY7Kc7Ii1YEqP9snRWj5Kw/8wK+5bgeVnvbQbLRXzuJ3R/gO0szOh8ky3HssRpyNkEYDhBPk3o1HkOdwS1sw9E4rHF4oMEXYuQT4+bFkptVTNR/pgiAPmXF14RRXMtKoPSR1ZXzxBZNZyEVm/N4HoEw9RQ/4duqUhuE/OSPp1VckWeNTQd+qj9Wf+s79J84YEDBOqUlcJjNZInjz/EaVNRMvn21R/I1Xt8v1QD6GEXOYulmilh3uy+oC1by16w/PYRmBQU1BHzY3VciVs4Zgjhu4KQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gevVPhmJDfeBhPDt7bTqXXZzC2OXbkPPQ3tykLpIMiI=; b=TDviDKhv0Cld8b8qhBtgCBSjZHBNZMjkbNtKatW7VfW8fY7IsZhTaksokbBurvS5QNO47G8UZZwq34q38Xu0rTOXWLL9pYCIl0qYeJ1Qh8dksHiYgmL2atp6PCuhZqYXN0obrHNM68eJsIYWh2sIzkNEVknnoRWEgYxxwlZmhYQ= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; From: Hirokazu Takahashi To: xen-devel@lists.xenproject.org Cc: Hirokazu Takahashi , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , Volodymyr Babchuk , "Daniel P. Smith" Subject: [PATCH v3 15/22] xen/arm: Balance Dom0 memory allocation across allowed NUMA nodes Date: Fri, 19 Jun 2026 16:50:03 +0900 Message-ID: <20260619075011.377116-16-taka@valinux.co.jp> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260619075011.377116-1-taka@valinux.co.jp> References: <20260619075011.377116-1-taka@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY4PR01CA0091.jpnprd01.prod.outlook.com (2603:1096:405:37d::11) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TYTP286MB4024:EE_ X-MS-Office365-Filtering-Correlation-Id: 9c839891-3b60-48b8-2552-08decdd776b6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|10070799003|366016|23010399003|1800799024|18002099003|22082099003|5023799004|6133799003|56012099006|3023799007; X-Microsoft-Antispam-Message-Info: QZ+iOcchzFSLpCu1zSGAFvEijvonFVTMUV+FCJ75e3PdNb2Ua85IiQ0Ci1wECjYlF0A4EdIDNPYAQ+NQWODPxYvK27ppWOQo6gO2rTTSlIFsXy46ACJEYQQJfkRBiSxD2EVJOXgBZ3liASkKGcV55XkcDTY5I8twDBo1dN4Ckci4YbhPX10l+GulQ+pYrVxApY0ziYLPpCpIVfSGzPSjMqafUZp/WfkvECY2V62NqXS3iTZKUOVTpQmAn5Lzt9cqGW0/nFE7I3K4D4MCz68VCrgTXh9EVw+sBzIKclIk4VksjEObVoKlc/uab7FYFyyXXAVBbjW0A0D5A1DGJ1taDSYifXz/Rx6bMQSjaPVBxV5yo39OnHLsSQgUIGpHljD8he+a59RZ2D+PGNu3qChUoURmdIFKLBrUSiTKCpjgpcVq744n+4KGA1kZeBaoUCY8ztr3K+9bSf7eP63ZHjfR+ITPoFDlVs4iHdFG831jpKaF9XHW4FrX+Qgc6HpM9WDcMmsYX+20AfFRI1pGDAsYHu9E2z61jdH06T4908usIwBw6donBIOZ3ST2VS4qNftVf8yMskn08dMXBIvchex3ZhNYVByFtpy6xsg0iDx5iEZfwC5TKuIWeuhQhZEfj8xTC4JtAMoL5SMNTyTHLwqHsyn0dy1VtLEhdJbx+sHGZtg= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(10070799003)(366016)(23010399003)(1800799024)(18002099003)(22082099003)(5023799004)(6133799003)(56012099006)(3023799007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?8kgiYc+Q0K62gB9bKu5NYoRP+4BM90aT0mJPnppzVkyEX+Fv74wbblG7CMJ7?= =?us-ascii?Q?vxJrQL+nZlBp42jbl3cLU7OahXdZD/DIJ7McLwJ9VU3phZ9ovDc6kwPiL0cF?= =?us-ascii?Q?kR0xBIiuUzCXQZeExcWiScLw6QH/Oa8gJetJH7gGiQcCTVFPNeVzUHGmOgRg?= =?us-ascii?Q?FZLJ0kmwnQapB3yvZpBK0ZkFZETBuUoLiQTLtmn3UMiTKv21XqDABcUb4JZp?= =?us-ascii?Q?SS7x3n3rsIFjh/x1/V0Zs5dJri2FGYMaKoeTJSntT1Sqj0SFq4T0F8lUgKaX?= =?us-ascii?Q?O7/DNJw5/uU0NGAaIUvBczTE+McJ024gJSRjX+L5lirM2EHWjgr8JUF/Oo2H?= =?us-ascii?Q?ERoUNGo/WdoUVUqzJNhlkg8ZjLty0zfJnJS8Xq3h3vskEg3FruTwiuwiTdeD?= =?us-ascii?Q?v9WIXRpByYKfwHC2hD8DSk/wsFfas3X/xANeHvGCRnKWuoqnkeCrtDm9I4dI?= =?us-ascii?Q?MFyySUUBnrQNJocDEbHgfPsZMu/LVhyrMNt5iXkLE1B8emLA5feJ9nUY87Si?= =?us-ascii?Q?BLCDHFPmkqxHLN4GokroHEx8TyOMyGp57qBYTg9VNM8wOlnoiCbCWtStsSwb?= =?us-ascii?Q?WcXY7tXiNtnyrioq9fXUU+McteGr3DitUEGJbZnggfCmKa6S8OrysyieWCqB?= =?us-ascii?Q?X1dm+AcCQCiIacjm0qUpqEbJlKP8zAp+e+ZXRUSyTyZ+G2Sv6MoLr3S5Mm3p?= =?us-ascii?Q?P2/IUC8yscONce9vKivj0J1vz+y2msR88XW/X3J6CnVKqA49ekmUqwYlx8K3?= =?us-ascii?Q?mh8HKpjEOwgKC2hvIb6bsdkMyLZm4p51lMP/+55ulUKFZNQ0BWuQ/zRwtRDp?= =?us-ascii?Q?HNAufJ1USfnL/TubuR5guNFekjurkoHu7N4bCcB3ZnvTMZAQZz/wg5lIZ2Ro?= =?us-ascii?Q?0amVnZZaFlYnAx3Cme8eX419nFfY960UyiW+cvUv2V69CPu6OeeLy+CAbxfZ?= =?us-ascii?Q?r5ejXsIVQoRI/v+1oC5B0S8nnZX42jyGsPgusQjiH/5yYT+FVmGH83xVewxX?= =?us-ascii?Q?o2C/1yltQJMywktePrxYw8vQ6IRc1X7PRqdQFz+8s3921CPRl3X8sAlvAq0r?= =?us-ascii?Q?uzF7IBnni97T8YT0jlJs31U4kmxmytEwRijBEaxgPuLDFbL3r+6ozq5mNFiu?= =?us-ascii?Q?s1qRZAmPvgsbc5LrfJY6P4AypyafSD3wh2xmxzTW8x1QfO5I02UnUkkQOnIr?= =?us-ascii?Q?KJMxjUxMkOhahXrgOKGBk45VImVpNZRe9EgP664bYvKAse3WErQPVN+1Uk+j?= =?us-ascii?Q?cAy2xNUpPcwFFViHejTZoBXT0PtEo/gAgUmULdC7B+yzkCRLrckmGSLQ5+zo?= =?us-ascii?Q?i87JoFQfc/HcbbcMYJMICW++Qu4CoglhBkEx5J2Ko969oQ3GFxoWB+AuJspa?= =?us-ascii?Q?iJ6AiEeOJaM32V9JDKBQRKGBYmS6BEtGFkJKslNXbuh3bdwUxOmUqMxn7Jx0?= =?us-ascii?Q?L/aoGkCnFnacrgBEbVkhalzhumlrb1F14h/mzqdSjMezXOBSvZV0iLl7EttT?= =?us-ascii?Q?DjrrG6S8hxxEUR0sfY48+gqiRPO7V/Jp2XYAkVILY9P7s2CeupZKaq79aA6a?= =?us-ascii?Q?rzyfrXY6Oy1XVnJQN8TCASk58bJ7wSFLoLaNpE7p36zUO4J87kDBZMvHWSo+?= =?us-ascii?Q?DeT7j4/2WYXM0wPZIluAJENaejxu7BGXnuEuVPQGxF49LYlo3YpRDW/zMSLS?= =?us-ascii?Q?W1b4x34GMg6huOGgcxdcQFCnTU6kfncU3LAQk6EWqYN6NsBBxHteAd8T3Ldf?= =?us-ascii?Q?WzT8my1y04vElwryVLL43RChlub8tMtDmX4akDMnayvOH8oPew+j+UaIF9NE?= X-MS-Exchange-AntiSpam-MessageData-1: FgMOUGwTFMCyLw== X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 9c839891-3b60-48b8-2552-08decdd776b6 X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2026 07:50:42.7240 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Nx69JhBD2F8+3iCh8xdUXd/cpewMabPXvA/ZR5sRFHqLQXKfCavwuJoRwXTrfPiqAuIX6Hyi1+vrYS/r2jj4Ng== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYTP286MB4024 X-purgate-ID: tlsNG-d25034/1781855445-DB5E0ABF-F0EA92BD/0/0 X-purgate-type: clean X-purgate-size: 15149 X-ZohoMail-DKIM: pass (identity @valinux.co.jp) X-ZM-MESSAGEID: 1781855483125158500 Content-Type: text/plain; charset="utf-8" Allocate memory for Domain-0 exclusively from the permitted NUMA nodes. When multiple NUMA nodes are available, distribute the allocation in a balanced manner across each of these nodes. Signed-off-by: Hirokazu Takahashi --- xen/arch/arm/domain_build.c | 274 ++++++++++++++++++++---------------- 1 file changed, 151 insertions(+), 123 deletions(-) diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c index c036721f45..6828cfc46a 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -188,33 +188,19 @@ unsigned int __init dom0_max_vcpus(void) static bool __init insert_11_bank(struct domain *d, struct kernel_info *kinfo, struct page_info *pg, - unsigned int order) + unsigned int order, + nodeid_t node) { struct membanks *mem =3D kernel_info_get_mem(kinfo); unsigned int i; int res; mfn_t smfn; paddr_t start, size; - nodeid_t node =3D 0U; =20 smfn =3D page_to_mfn(pg); start =3D mfn_to_maddr(smfn); size =3D pfn_to_paddr(1UL << order); =20 - /* This code is temporary */ - { - struct membanks *mem =3D bootinfo_get_mem(); - for ( i =3D 0; i < mem->nr_banks; i++ ) - { - if ( start >=3D mem->bank[i].start && - start < (mem->bank[i].start + mem->bank[i].size) ) - { - node =3D get_numa_nodeid(&mem->bank[i]); - break; - } - } - } - D11PRINT("Allocated %#"PRIpaddr"-%#"PRIpaddr" (%ldMB/%ldMB, order %d)\= n", start, start + size, 1UL << (order + PAGE_SHIFT - 20), @@ -301,7 +287,13 @@ fail: } =20 /* - * This is all pretty horrible. + * Allocate NUMA-aware memory for Dom0 with 1:1 mapping. + * + * This function distributes the requested Dom0 memory across the allowed + * physical NUMA nodes in a balanced manner. It implements a multi-pass + * scavenging loop to allow nodes to dynamically back up each other if a + * particular node runs out of memory, maintaining a balanced distribution + * while ensuring the maximum amount of requested memory is satisfied. * * Requirements: * @@ -316,155 +308,190 @@ fail: * below 4GB, so that it can be used by non-LPAE enabled kernels (32-bi= t). * 4. Some devices assigned to dom0 can only do 32-bit DMA access or * even be more restricted. We want to allocate as much of the RAM - * as we reasonably can that can be accessed from all the devices.. + * as we reasonably can that can be accessed from all the devices. * 5. For 32-bit dom0 the kernel must be located below 4GB. - * 6. We want to have a few largers banks rather than many smaller ones. + * 6. We want to have a few larger banks rather than many smaller ones. * * For the first two requirements we need to make sure that the lowest - * bank is sufficiently large. - * - * For convenience we also sort the banks by physical address. - * - * The memory allocator does not really give us the flexibility to - * meet these requirements directly. So instead of proceed as follows: - * - * We first allocate the largest allocation we can as low as we - * can. This then becomes the first bank. This bank must be at least - * 128MB (or memory size requested for domain if that is smaller). + * bank (Bank 0) is sufficiently large to hold all boot modules. * - * Then we start allocating more memory, trying to allocate the - * largest possible size and trying smaller sizes until we - * successfully allocate something. + * The memory allocator does not really give us the flexibility to meet + * these requirements directly under NUMA topologies. So instead we proceed + * as follows: * - * We then try and insert this memory in to the list of banks. If it - * can be merged into an existing bank then this is trivial. + * We first calculate the total size required for the kernel, ramdisk, and + * DTB to establish a safe minimum size constraint for the first bank (Ban= k 0). * - * If the new memory is before the first bank (and cannot be merged into i= t) - * and is at least 128M then we allow it, otherwise we give up. Since the - * allocator prefers to allocate high addresses first and the first bank h= as - * already been allocated to be as low as possible this likely means we - * wouldn't have been able to allocate much more memory anyway. + * We then enter a multi-pass outer loop that runs until the full memory + * request is met. In each pass, we dynamically calculate the target alloc= ation + * amount for each remaining active node to ensure a balanced distribution. * - * Otherwise we insert a new bank. If we've reached MAX_NR_BANKS then - * we give up. - * - * For 32-bit domain we require that the initial allocation for the - * first bank is part of the low mem. For 64-bit, the first bank is prefer= red - * to be allocated in the low mem. Then for subsequent allocation, we - * initially allocate memory only from low mem. Once that runs out out - * (as described above) we allow higher allocations and continue until - * that runs out (or we have allocated sufficient dom0 memory). + * For the initial chunk (Bank 0), we try to allocate the largest possible= size + * as low as possible, honoring the 32-bit lowmem/DMA constraints. If it f= ails + * to find lowmem space and the domain is 64-bit, it falls back to highmem + * without violating the minimum size needed for the boot modules. */ static void __init allocate_memory_11(struct domain *d, struct kernel_info *kinfo) { - const unsigned int min_low_order =3D - get_order_from_bytes(min_t(paddr_t, kinfo->unassigned_mem, MB(128)= )); + paddr_t todo =3D kinfo->unassigned_mem; + nodeid_t node; + + const unsigned int max_chunk_order =3D get_order_from_bytes(MB(128)); const unsigned int min_order =3D get_order_from_bytes(MB(4)); + const unsigned int lowmem_bitsize =3D arch_get_dma_bitsize(); + unsigned int min_bank0_order; + bool is_bank0 =3D true; + + const struct boot_module *kernel_mod =3D boot_module_find_by_kind(BOO= TMOD_KERNEL); + const struct boot_module *ramdisk_mod =3D boot_module_find_by_kind(BOO= TMOD_RAMDISK); + const struct boot_module *dtb_mod =3D boot_module_find_by_kind(BOO= TMOD_FDT); + const struct boot_module *xsm_policy_mod =3D boot_module_find_by_kind(= BOOTMOD_XSM_POLICY); + paddr_t required_size =3D 0; + + nodemask_t exhausted_nodes; + nodemask_t valid_nodes; + struct membanks *mem =3D kernel_info_get_mem(kinfo); - struct page_info *pg; - unsigned int order =3D get_allocation_size(kinfo->unassigned_mem); unsigned int i; =20 - bool lowmem =3D true; - unsigned int lowmem_bitsize =3D min(32U, arch_get_dma_bitsize()); - unsigned int bits; - /* * TODO: Implement memory bank allocation when DOM0 is not direct * mapped */ BUG_ON(!is_domain_direct_mapped(d)); =20 - printk("Allocating 1:1 mappings totalling %ldMB for %pd:\n", + printk("Allocating 1:1 mappings totalling %ldMB for dom0:\n", /* Don't want format this as PRIpaddr (16 digit hex) */ - (unsigned long)(kinfo->unassigned_mem >> 20), d); + (unsigned long)(kinfo->unassigned_mem >> 20)); =20 mem->nr_banks =3D 0; =20 /* - * First try and allocate the largest thing we can as low as - * possible to be bank 0. + * Calculate the absolute minimum size required to fit the kernel, + * initrd, and DTB inside Bank 0 */ - while ( order >=3D min_low_order ) - { - for ( bits =3D order ; bits <=3D lowmem_bitsize; bits++ ) - { - pg =3D alloc_domheap_pages(d, order, MEMF_bits(bits)); - if ( pg !=3D NULL ) - { - if ( !insert_11_bank(d, kinfo, pg, order) ) - BUG(); /* Cannot fail for first bank */ + if ( kernel_mod ) + required_size +=3D kernel_mod->size; + if ( ramdisk_mod ) + required_size +=3D ramdisk_mod->size; + if ( dtb_mod ) + required_size +=3D dtb_mod->size; + if ( xsm_policy_mod ) + required_size +=3D xsm_policy_mod->size; =20 - goto got_bank0; - } - } - order--; - } - - /* Failed to allocate bank0 in the lowmem region. */ - if ( is_32bit_domain(d) ) - panic("Unable to allocate first memory bank\n"); + min_bank0_order =3D get_order_from_bytes(required_size); =20 - /* Try to allocate memory from above the lowmem region */ - printk(XENLOG_INFO "No bank has been allocated below %u-bit.\n", - lowmem_bitsize); - lowmem =3D false; + nodes_clear(exhausted_nodes); + nodes_and(valid_nodes, d->node_affinity, node_online_map); =20 - got_bank0: + BUG_ON(nodes_empty(valid_nodes)); =20 - /* - * If we failed to allocate bank0 in the lowmem region, - * continue allocating from above the lowmem and fill in banks. - */ - order =3D get_allocation_size(kinfo->unassigned_mem); - while ( kinfo->unassigned_mem && mem->nr_banks < mem->max_banks ) + while ( todo > 0 ) { - pg =3D alloc_domheap_pages(d, order, - lowmem ? MEMF_bits(lowmem_bitsize) : 0); - if ( !pg ) - { - order --; + paddr_t last_todo =3D todo; + nodemask_t active_nodes; + unsigned int active_nodes_count; + unsigned int nodes_left; =20 - if ( lowmem && order < min_low_order) - { - D11PRINT("Failed at min_low_order, allow high allocations\= n"); - order =3D get_allocation_size(kinfo->unassigned_mem); - lowmem =3D false; - continue; - } - if ( order >=3D min_order ) - continue; + /* Filter out exhausted nodes to find active candidates */ + nodes_andnot(active_nodes, valid_nodes, exhausted_nodes); + active_nodes_count =3D nodes_weight(active_nodes); =20 - /* No more we can do */ + if ( active_nodes_count =3D=3D 0U ) + { + printk(XENLOG_WARNING "Dom0 NUMA: All specified nodes are comp= letely exhausted.\n"); break; } =20 - if ( !insert_11_bank(d, kinfo, pg, order) ) + nodes_left =3D active_nodes_count; + + for_each_node_mask(node, active_nodes) { - if ( mem->nr_banks =3D=3D mem->max_banks ) - /* Nothing more we can do. */ - break; + paddr_t target_per_node; + paddr_t node_todo; + + /* Target chunk size per node */ + target_per_node =3D DIV_ROUND_UP(todo, nodes_left); + target_per_node =3D DIV_ROUND_UP(target_per_node, MB(128)) * M= B(128); =20 - if ( lowmem ) + node_todo =3D min(todo, target_per_node); + + while ( node_todo > 0 ) { - D11PRINT("Allocation below bank 0, allow high allocations\= n"); - order =3D get_allocation_size(kinfo->unassigned_mem); - lowmem =3D false; - continue; + struct page_info *pg =3D NULL; + unsigned int max_order =3D get_allocation_size(node_todo); + unsigned int order; + paddr_t bank_size; + + /* + * Enforce a maximum chunk cap of 128MB for all allocations + * except Bank 0 + */ + if ( !is_bank0 && max_order > max_chunk_order ) + max_order =3D max_chunk_order; + + for ( order =3D max_order; order >=3D min_order; order-- ) + { + unsigned int memflags =3D MEMF_node(node); + if ( !dom0_affinity_relaxed ) + memflags |=3D MEMF_exact_node; + + if ( is_bank0 ) + { + unsigned int bits; + for ( bits =3D order; bits <=3D lowmem_bitsize; bi= ts++ ) + { + pg =3D alloc_domheap_pages(d, order, memflags = | MEMF_bits(bits)); + if ( pg !=3D NULL ) + break; + } + + if ( !pg && order <=3D min_bank0_order ) + { + if ( is_32bit_domain(d) ) + panic("Unable to allocate first memory ban= k below %u-bit\n", lowmem_bitsize); + + pg =3D alloc_domheap_pages(d, order, memflags); + } + } + else + pg =3D alloc_domheap_pages(d, order, memflags); + + if ( pg ) + break; + } + + if ( !pg ) + { + node_set(node, exhausted_nodes); + break; + } + + is_bank0 =3D false; + + if ( !insert_11_bank(d, kinfo, pg, order, node) ) + break; + + bank_size =3D 1ULL << (PAGE_SHIFT + order); + node_todo -=3D bank_size; + todo -=3D bank_size; + + if ( todo =3D=3D 0 ) + break; } - else - { - D11PRINT("Allocation below bank 0\n"); + + nodes_left--; + if ( todo =3D=3D 0 ) break; - } } =20 /* - * Success, next time around try again to get the largest order - * allocation possible. + * Prevent infinite loop if a full pass across all active nodes + * yields zero progress */ - order =3D get_allocation_size(kinfo->unassigned_mem); + if ( todo =3D=3D last_todo ) + break; } =20 if ( kinfo->unassigned_mem ) @@ -472,14 +499,15 @@ static void __init allocate_memory_11(struct domain *= d, panic("Failed to allocate requested dom0 memory. %ldMB unallocated= \n", (unsigned long)kinfo->unassigned_mem >> 20); =20 - for( i =3D 0; i < mem->nr_banks; i++ ) + for ( i =3D 0U; i < mem->nr_banks; i++ ) { - printk("BANK[%d] %#"PRIpaddr"-%#"PRIpaddr" (%ldMB)\n", + printk("BANK[%d] %#"PRIpaddr"-%#"PRIpaddr" (%ldMB) NODE:%u\n", i, mem->bank[i].start, mem->bank[i].start + mem->bank[i].size, /* Don't want format this as PRIpaddr (16 digit hex) */ - (unsigned long)(mem->bank[i].size >> 20)); + (unsigned long)(mem->bank[i].size >> 20), + get_numa_nodeid(&mem->bank[i])); } } =20 --=20 2.43.0 From nobody Thu Jul 23 22:29:24 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; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass(p=none dis=none) header.from=valinux.co.jp ARC-Seal: i=2; a=rsa-sha256; t=1781855486; cv=pass; d=zohomail.com; s=zohoarc; b=ZCMqHn4FM03RjjjYSgtfZ69LLXS0cPilfFKQZqiv736KqSoX/BpbzyxNtCIzMqlTlZegSGjaEKhjffv4S5jCaqpzijM8D6C6FzQ82R5HtTNnJsYq18ThIXP2zpXiFmWQXK6TG0W3ZZi/6Clch73Otf66v51maRf5I6WZdUfPES8= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781855486; 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=3EUdtkaW4UdmfPYk5bJ/HzEBP4a7cC3lP5IBYmpCtIg=; b=g6KwcY93PpndYmU4/mQhDKdNQH8sOu/2KveBk24tJgfywGah6gI+JfAz86SgYQsnhetJjxNg4+ESr6ju4VrajpHQw3EIIbP/VwxVntzYG9VnkbJICtkdh77QHerSjE+dmhKVcJ1tl8EHKZIMpWVKZ/FooucazKCAuBE+zKEHFjA= ARC-Authentication-Results: i=2; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1781855486784758.6341995421991; Fri, 19 Jun 2026 00:51:26 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1341760.1602127 (Exim 4.92) (envelope-from ) id 1waU00-0008Sb-En; Fri, 19 Jun 2026 07:50:48 +0000 Received: by outflank-mailman (output) from mailman id 1341760.1602127; Fri, 19 Jun 2026 07:50:48 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waU00-0008R4-9N; Fri, 19 Jun 2026 07:50:48 +0000 Received: by outflank-mailman (input) for mailman id 1341760; Fri, 19 Jun 2026 07:50:47 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waTzy-00083F-Tu for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 07:50:47 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1waTzy-00Dy3W-9J for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 09:50:46 +0200 Received: from [10.42.69.12] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a34f4d6-e002-0a2a0a5209dd-0a2a450cca78-0 for ; Fri, 19 Jun 2026 09:50:46 +0200 Received: from [52.101.125.75] (helo=TYVP286CU001.outbound.protection.outlook.com) by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.0) (envelope-from ) id 6a34f4d0-94a4-0a2a450c0019-34657d4b8662-5 for ; Fri, 19 Jun 2026 09:50:46 +0200 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) by TYTP286MB4024.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:185::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.139.12; Fri, 19 Jun 2026 07:50:44 +0000 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0139.011; Fri, 19 Jun 2026 07:50:44 +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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Gp8JA4+kxIF32ysJQ8pj0FBqzgfOJxHMTpPvzuhbcMH/xALe41hDFfdN3T8RjvQoSq61rFdEZkWNurhU2kB0TPFbTDCeOdw6h6Y6x5RYYKuGs6g1soraNLtyZhkOsX4Ypl9Ukzj/p3m6iOzXfSzcvFrEY1RaU4kEEq+nJ9PnelDIsDsoz4+4tR0GFg4S5yMM+oV/3uZE11gsCrJF2qFKz3GSpemIFbvttFXO7qqWR5GF3NNbWzphXDrlFCI3y4HxAjjny8HGqpHwxU57/y5mwO2Zj3jKMIjQtm1ohGy2/8zd85Q+a8FdP+g/rmgxPA2DGEATAhtE9eDOXhxTMss/XA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=3EUdtkaW4UdmfPYk5bJ/HzEBP4a7cC3lP5IBYmpCtIg=; b=C2lq/6iwTRplQOi4X9AXCtoZK0Zts2cEMwElkKxpUi/dnLnk9ZjmW9ftpK4tO5ntNJ4GX5ySpL1dB2/sKeoN4SYWXNFfttw4DxMJ7kUuLctQusgcXx+39lOXPtA3x92BczTV74f8St5YMz5qZQtYpWQYzg1adHFBv9mnuD6BgY2+vvUUK/dPM9llWxr9LNTFLl6Uy5ID/3mG9tV49BmoPo4ilb7ChU+RKqEWEHAlu5AUJoQtbBkbc2CQUsiL1LFi0mp1JkiBIs5Zv+825F8vA2X8rUqvzjKKL4MSgxRGbL/wICgUF281D5zLi8Ql+naANnCX6f7mWy2y6tEYuCgSig== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3EUdtkaW4UdmfPYk5bJ/HzEBP4a7cC3lP5IBYmpCtIg=; b=uAANTgeoKP7A1iUkLMEcIIueSKbG9wrDy2Gf53VU38hZIZN/mBQLOEJA7ML5sMt5B+tQEfv2UjQQfSzLriULDdsFERda7dsJlIRIcsfwfSz9d99Tyx4B086ASMntndsN2ayFsweQbxRL+MeeoUkKoLsnK+oStyVkGDpY5bw8vxU= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; From: Hirokazu Takahashi To: xen-devel@lists.xenproject.org Cc: Hirokazu Takahashi , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , Volodymyr Babchuk , Andrew Cooper , Anthony PERARD , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= Subject: [PATCH v3 16/22] xen/arm: Use dedicated function for Static SHM Device Tree creation Date: Fri, 19 Jun 2026 16:50:04 +0900 Message-ID: <20260619075011.377116-17-taka@valinux.co.jp> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260619075011.377116-1-taka@valinux.co.jp> References: <20260619075011.377116-1-taka@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY4PR01CA0096.jpnprd01.prod.outlook.com (2603:1096:405:37d::19) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TYTP286MB4024:EE_ X-MS-Office365-Filtering-Correlation-Id: 7409005e-b715-44c2-0586-08decdd777b9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|10070799003|366016|23010399003|1800799024|18002099003|22082099003|56012099006; X-Microsoft-Antispam-Message-Info: HOgZWb9cuHFJ73YwZHSDxytktqjhRCaROoykrLUFI2meZ1/5u7ZpJHzOFculLQi5GRN/FOgy8wZarlRjEtwZfLeZBZEN9omUaAJfMDikBjWxLTMhNB5iiFVLlNjb8HkKR4T1L4uQ4E+drzGNraWrGbgZGVpNquy5hCXM/rmpZ6fsRNuY30VOaCxWcRghARA+mhOEg1apCEJ4PKEGZAOPrmQMYcYEsoeF+dQudXU+zozgin0T3Y5tXtfWUPdub2r+JQ4/Ke99hyemb1vMNu0h3RKSkJAmkqnqRENTeFRZeuHgjfiZxQUsKshrVo82KrDukVngTu9SrgdW3YmqKI7m0os58C91jZleXbJFdo077SGdEC9pBZoOpHk1Kfiqz4X2EeML/uxMwSgqkRDHfUD9o9w4sDxb1ZE787WhqzGq+DiZe/cPyyXv5a86d71BK26qySMsfiqXpup5Pgc6FjDzfvAEYsbSJAomFs1MWskkoZgR9yQIrda3MQRAraR/qBGVVZNwQSqpqxUD3AjWIDLYkV+KudrLOxZlG2Qp4P+fOzCvjvHeLD6g9e89YbNGY14vSKSEziaqs8kipV30oYUF4NxLdQH9iJNL7mtMMSgaEmxwJbUm/NmT+lsv3eo5tnvrmyG2YkGg5iuje6e2EOKyOkCcL5GiAC07Q9WUfl0wTqI= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(10070799003)(366016)(23010399003)(1800799024)(18002099003)(22082099003)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?k+ozkdHR+q9z9xG8RbJDnw9HDjdsoTvONPvBlRGnfj4+XK0owX52bQHnmLJ0?= =?us-ascii?Q?0feyPxNrkxDKC6qKPt/Fzw6kAJIGzHtKa/TECPV3i+2LTmYaOr4oEJIq3UUB?= =?us-ascii?Q?nZCc/9uX42lC4aad+QRlpwVF8z4eAxdt/CIktAI/4BGbY/CQhWbrmcsGWxFb?= =?us-ascii?Q?/qX5QsbQzpI6sYYleE8zguZqDGWow1sLKXCrdnbkcVBtojobi0YUqH3kcSj/?= =?us-ascii?Q?eZVC3kUUbZINCC07edkl4fMtzblLBbFGlxGjtZBoJujepMaZ/eLYUq+ovm3b?= =?us-ascii?Q?qncGAlZpf55k1ZmGyTfPf3/r3VhQDzu7ektlAqhCcJn/AiYUV2z3L2xN9Toj?= =?us-ascii?Q?n1r2FqYa90YYmpDuW/BtaHrxyZAI/gAg9PovA3s/FVvqpS+sFGUhem+EcsvV?= =?us-ascii?Q?yLIPjBb8LyJLFx0cQCkBfFT4Hly8i2Eo0KMawH9ufjLlOyvPN2wAL0q8g4wh?= =?us-ascii?Q?it/pBGsdh+FqgGdAJ9gtRSlkYgd+mB9SAz0Y87HgnbRQOjYf9ijkNTffwCKR?= =?us-ascii?Q?JNVjo3HI5YBlYojQJd6WGhKdT5plfiR18bH8ep8m/3HPhT5S48U5SIs76Hcm?= =?us-ascii?Q?+fbHaKsjFUc2pdmyqJsMip1hLXZgED3LNd3cmd2vBQd11ZJpV1U3aY3gQsHl?= =?us-ascii?Q?EmR6shUm17ElTe63cKIjxoIksHqrJLcp/EoINCEjNRwTI5Vgm1CacsGpGiJp?= =?us-ascii?Q?1AQnqbnApOykBTeADVte+zJcfmRLaMRs8ETOaqOzjM5LPJ2uMm5FcoPRqKjr?= =?us-ascii?Q?biwwlti9pbcvHd2wRKfD9DpnD2jujKdSNdv2vWvbRwBNGe/q65YfIzj+blUW?= =?us-ascii?Q?WpzH2Emx0mmdOb7oNFKEkVcjmJXylW7h6yzAQrCudrQHe9vxOKcPujBWGyrx?= =?us-ascii?Q?Py+iLiI4ZM5XCyAHBoJTNIgVkpWas2N8MXiC3Awf8mVE3l5yK9iwozqRQ804?= =?us-ascii?Q?PJsFHD8ecnVRv98/VJKVoEtKaDDD8CMkV7mL1bVM0Ba64UcIbCab6WX4Sijs?= =?us-ascii?Q?cRO2YTj61/8aLNv+GpkAeHBscpm9C6XyGms+pLJGTx90NzDszNkyeVmQY3g8?= =?us-ascii?Q?nG7qb7e2rS0UiC8weqIO7heq23PFtRzSxkBq4cTix7zVGamULNPQ1SznLFBo?= =?us-ascii?Q?6oYDkD9307MMteokjWsyz+8ltXT/mfpnPhaiei3NN/6fGMygipVGGGAqwICT?= =?us-ascii?Q?+vu1Ho4deBuCTQsTg5u1Svxnc6lTgQK67sqkABiYEQiWUwM2feiSPeQ786DN?= =?us-ascii?Q?r74PO4KICzLb3azABrAjJJlVynNQk0VkhvzHEB7ichvDvyVwAh882rflT+W2?= =?us-ascii?Q?AT6VluV4pF+uwmBngGP5MFZidciGnPErkhUERDSEBSFITxrOYNzeBLY6KbJt?= =?us-ascii?Q?q1n9lHaMwQGbMoUevXXCenftadoU1+KPvxWAFREWeVrjv+6NYXDv9dRep5ap?= =?us-ascii?Q?hdkJotF7itqWqbtyqdHaBrw84EaRrxSnLjpH8X41UuJYP7VunRPb3GtAx0aQ?= =?us-ascii?Q?uwTFQehHpG+Bnybh/YNl7e2YMgwjOJ2EaY92KH0W6rgKCPEyJWPJ7l0ok8s1?= =?us-ascii?Q?7JQXRPWC3E365x9j8SLvtj7T9mLyoiU3erFisHxBCmTborviJMA35wMayofP?= =?us-ascii?Q?g8xcO5gymYsIke4w1OsQdpYqGLKRBGhcGPS9tsjwIXwQNI7gRC7t9rVmZNOZ?= =?us-ascii?Q?7wsCzzioVZVryevZVe4SlC+TUm+SjOWjeEGUqq0Hy8GFmZowg6Y7yrJUoeGz?= =?us-ascii?Q?w3NFeKYFt7e02Ml9vIsShWr2f5RFKeg0GgrtCzzbqVhdQ2HKQu6vaYwsPFec?= X-MS-Exchange-AntiSpam-MessageData-1: TqHC9oKjf7KDZg== X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 7409005e-b715-44c2-0586-08decdd777b9 X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2026 07:50:44.4322 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: UfqlW9+iICzWj5k7yLnPcrKfRekd4i+kXeH6WrvEie/ezE/3qJDsNtfJwsS0njSylDGFKun8vfI6GHWQq4+FTA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYTP286MB4024 X-purgate-ID: tlsNG-d25034/1781855446-53FE5ABF-9A3D01C8/0/0 X-purgate-type: clean X-purgate-size: 2934 X-ZohoMail-DKIM: pass (identity @valinux.co.jp) X-ZM-MESSAGEID: 1781855487064158500 Content-Type: text/plain; charset="utf-8" Use a dedicated function to create Static SHM Device Tree nodes instead of reusing the generic memory node function. Since the memory banks managing Static SHM repurpose the 'type' field for a different purpose via a union, separating this creation logic keeps the implementation clean and significantly improves maintainability. Signed-off-by: Hirokazu Takahashi --- xen/arch/arm/domain_build.c | 6 ++++++ xen/common/device-tree/domain-build.c | 21 +++++++++++++++++++++ xen/include/xen/fdt-domain-build.h | 2 ++ 3 files changed, 29 insertions(+) diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c index 6828cfc46a..7d32249826 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -1815,6 +1815,12 @@ static int __init handle_node(struct domain *d, stru= ct kernel_info *kinfo, if ( res ) return res; =20 +#ifdef CONFIG_STATIC_SHM + res =3D make_raw_memory_node(kinfo, addrcells, sizecells, kernel_i= nfo_get_shm_mem_const(kinfo)); + if ( res ) + return res; +#endif /* CONFIG_STATIC_SHM */ + res =3D make_distance_map_node(d, kinfo->fdt); if ( res ) return res; diff --git a/xen/common/device-tree/domain-build.c b/xen/common/device-tree= /domain-build.c index c3452a4037..16924b9645 100644 --- a/xen/common/device-tree/domain-build.c +++ b/xen/common/device-tree/domain-build.c @@ -576,6 +576,27 @@ int __init make_memory_node(const struct kernel_info *= kinfo, int addrcells, return res; } =20 +int __init make_raw_memory_node(const struct kernel_info *kinfo, int addrc= ells, + int sizecells, const struct membanks *mem) +{ + unsigned int i; + int res =3D 0; + + if ( mem->nr_banks =3D=3D 0 ) + return 0; + + dt_dprintk("Create raw memory nodes\n"); + + for ( i =3D 0 ; i < mem->nr_banks; i++ ) + { + res =3D make_memory_sibling_node(kinfo, addrcells, sizecells, &mem= ->bank[i]); + if ( res ) + return res; + } + + return res; +} + /* * Local variables: * mode: C diff --git a/xen/include/xen/fdt-domain-build.h b/xen/include/xen/fdt-domai= n-build.h index 671486c1c8..6a809f3f86 100644 --- a/xen/include/xen/fdt-domain-build.h +++ b/xen/include/xen/fdt-domain-build.h @@ -31,6 +31,8 @@ int make_hypervisor_node(struct domain *d, const struct k= ernel_info *kinfo, int addrcells, int sizecells); int make_memory_node(const struct kernel_info *kinfo, int addrcells, int sizecells, const struct membanks *mem); +int make_raw_memory_node(const struct kernel_info *kinfo, int addrcells, + int sizecells, const struct membanks *mem); int make_timer_node(const struct kernel_info *kinfo); =20 static inline int get_allocation_size(paddr_t size) --=20 2.43.0 From nobody Thu Jul 23 22:29:24 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; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass(p=none dis=none) header.from=valinux.co.jp ARC-Seal: i=2; a=rsa-sha256; t=1781855469; cv=pass; d=zohomail.com; s=zohoarc; b=ISBEzxpfTySqcB2I9qOjYtsPct9SEUG63Eno5b/+DPTgy8rLY8O+BFAcV5BA2Rqr9+5uM2K7dugejYzLGcHrwzbGiGhEzCgXj3/hX73/EAThHCSD1Jtq8ZM7whwCniLS6iNbV3DFfd3O66Kj1i1aLlhR4g8XBldUCqRTbXXlnZU= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781855469; 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=NnnrNnjtKFwE173RdNIYBVM2GKwC3Mi9fLxil7K6r04=; b=fiO4iFc9RIqlXzrI6+yi/JRX3znsasb/ZxCuVYYPgk+rHGm3KcxzciDjj1Q0d115aRr1YPcUffSySfDFRjPtBIfLIgDsXZGTwNYq1DWHC3WG37t7TUnOZFmmb6hysiIn68th2T7DKniqvnHbyAzaMuABPygO5VgzJFhkOaUuDrw= ARC-Authentication-Results: i=2; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1781855469523654.3751371441559; Fri, 19 Jun 2026 00:51:09 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1341771.1602142 (Exim 4.92) (envelope-from ) id 1waU04-00014r-Jb; Fri, 19 Jun 2026 07:50:52 +0000 Received: by outflank-mailman (output) from mailman id 1341771.1602142; Fri, 19 Jun 2026 07: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 ) id 1waU04-00014S-B5; Fri, 19 Jun 2026 07:50:52 +0000 Received: by outflank-mailman (input) for mailman id 1341771; Fri, 19 Jun 2026 07:50:51 +0000 Received: from mx.expurgate.net ([194.145.224.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waU02-0000eo-QX for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 07:50:50 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1waU02-004dWx-7H for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 09:50:50 +0200 Received: from [10.42.69.9] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a34f4b7-bab6-0a2a0a5309dd-0a2a4509caf0-46 for ; Fri, 19 Jun 2026 09:50:50 +0200 Received: from [40.107.74.95] (helo=OS0P286CU010.outbound.protection.outlook.com) by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.0) (envelope-from ) id 6a34f4d7-4999-0a2a45090019-286b4a5fdda3-3 for ; Fri, 19 Jun 2026 09:50:49 +0200 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) by TYTP286MB4024.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:185::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.139.12; Fri, 19 Jun 2026 07:50:46 +0000 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0139.011; Fri, 19 Jun 2026 07:50:46 +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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fLbfDZ7t62norsXxMyEkgvHmr/DBpT1YKmqLrukBtA1Fbxk/qREke6yoDcYXmARoEV8hWwfRA29Nqu2mcxABBuHFngWiQUC0hTaS6BDkx4F0W+xnNZIP5GunvD6AurLm5dn+WH+LLByJLjSXitta5IakBuNdV2kTQPJWIJl8I//d1WephQy7HbpnBSjIRRl9bd0gwvVqwOr2tfMFpCy5kYosV5ovUN5toV5JNmwim35uR6T4Rtqa7j/fmovcAQHWgHyP7vQn+nU6UXjQArrSSmdNR5j+3Gz0xhObaF2S1Bl2CzMlqrViv+Ypj/Ri2p1edQyFKbqXH03eGu+APpaaaw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=NnnrNnjtKFwE173RdNIYBVM2GKwC3Mi9fLxil7K6r04=; b=Q7K54iL2zxlnBkacIPfisFeDe8tkyQZFUXluCXAGB14gpIf7aUlFMSlTnwh1GFLKccj+tPSFEH+Qn+NoeJsMPRAYiHjPlqM84H8/XupmUSrdGtkF6xMhkYQ47P4WmFglYKZEHyKt8+IdDDWDGsvWxRvSkQm0jaLlH/ZKnuJZJD/2OPDCwLeJRKoYAurRXJM2zgJyYKuEZmXq3HnQy+1+jhNBaGtSgXFUkHHBZ8kQ4YAQ56HP+HXMXUt3BSr+VeBLmaD0BBfyl6TCrtvXxjm0h88RpCO+rUMCLWv+rfrQrFaIGWeF+rDBaQ1L/Kdfg6ooLL1e6p+W7xsqOAbkGEO6Cg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NnnrNnjtKFwE173RdNIYBVM2GKwC3Mi9fLxil7K6r04=; b=nWWXa7W/+ArlGZ3PlPZXzZC476VYHHYq/HHr9v/PFds1dHPV2C9YWdcVoOvQqzcIgBbZdVXFockZNjqyn8AHFOBsEO/Vfz5SBx77EkmokgiSjqwv/5xs5CZK2udGWOnvqJneREyA1JRXBGCmLe2Bht1YUk1EtH2nAddFOFJw11s= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; From: Hirokazu Takahashi To: xen-devel@lists.xenproject.org Cc: Hirokazu Takahashi , Anthony PERARD , Juergen Gross Subject: [PATCH v3 17/22] tools/libxl: Fix vNUMA memory allocation algorithm to support ARM Date: Fri, 19 Jun 2026 16:50:05 +0900 Message-ID: <20260619075011.377116-18-taka@valinux.co.jp> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260619075011.377116-1-taka@valinux.co.jp> References: <20260619075011.377116-1-taka@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY4PR01CA0086.jpnprd01.prod.outlook.com (2603:1096:405:37d::14) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TYTP286MB4024:EE_ X-MS-Office365-Filtering-Correlation-Id: 20e5b81a-37b4-4612-cdf8-08decdd778f0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|10070799003|366016|23010399003|1800799024|18002099003|22082099003|6133799003|56012099006; X-Microsoft-Antispam-Message-Info: YiSy+ByRyXlhONpACviD4LycWmpuYzZyy63APpOPmqd5FJe6Bk9PJpfk7sjsHf5Ta+3727V6IdmuJsF7eLyO1rLlIQ1ABXZf+8z08U1vWSKh2UU0j8fyi+w3hIDm1qYY61ta6pidF0p1F1yzNKBJncSMXqEKeq6Wh+XOcjDKQL2D6EWJAfDMk2LxI7yghTgako7ZjSqws4ydcQEv/RSqBCulpCQAFPyH4Lb+St4F7Ee5Oj9Zf7tsOy9U/ZL06aQgzKapsweiwYm6wRa+NLTpeoxJkoC9N5kZNpPIGfTQ71a/1HFVgchdCvDyySSuGxcBR20AZE8Byxkx3hBaLxjHrnmeq2txt4lXIaSMrT6gL8DSkcdAdaXYXKu7/SLeFn50fpTVk9GA12TxaVdfXfQWsa80Z/0SUTvjrjuKjhg/wcqj6i1sD2qFOPBl3X29x+Yx2uo0kJXhJFeZJc2CqCj6QW+bj8Wi+UWiO/qrxoZNXWeLohIR6EpiKu4lK3/YBd9srUgpGVPejcRC6wWUBkQTe0zGC6apbcqhfHDW86DmHIHsD65sLLlRN6DwcfMBeFVQjWCXbIjG371+EnusdRrWogVF6VNiFDvdu4WJj261GhOOABwqjDc5lzaZGsvhmsCluTqFDeRxgkmCyfxV0rOsFGgWpgN0lPglBdToQigwDQw= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(10070799003)(366016)(23010399003)(1800799024)(18002099003)(22082099003)(6133799003)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?GGomvrLeFxyl/8Tp0OrDXPEyTmAQ4TwwUp0gQErJhWOQECCEE0K+4HgEgW65?= =?us-ascii?Q?NBrTHbG11Ie0iVGAtEUPX5t5cExT2TAbb8z58uFlj2C2pu46zmT2V+FN6IwX?= =?us-ascii?Q?g230+muHrKgsXIw7CbXDSZJmikgjcpWEy7+Jz2mt1aTSY+3Dil+Hky6atouy?= =?us-ascii?Q?ZOHjhvyoCgr75Ecr4ZQiIZGzfl2BGw33Q+Uxn8nXi5EGH8BAjUMtYQX8pV3n?= =?us-ascii?Q?jkKK5+/gf2V2hBS9gAQYeuqOahly4J3QaiPu4AEZpNCcbGUeXjVNSWhUs60g?= =?us-ascii?Q?vpJ3MpnqKklGpSYgXjihbOfObfd+u4FccoEVZsA41ti/a7xprZagUaQtQxCE?= =?us-ascii?Q?d0J5DT/0S8/ccZ8lp4lf59ZUmjhcK1fopkcxAEld1G/mz76/q6L7+FHJiciq?= =?us-ascii?Q?2ft7OyGFL8gHDWLpVfpLLN7dgB/3z1Zn1mRBPJCN/BFvDFvyyMVYXIpDAehf?= =?us-ascii?Q?iQrcRwUs362SUNlvkZgiey3fgccd9qUesm7pMn+o910vbh2ArlwG19yBU1JI?= =?us-ascii?Q?ykerxHzwjaG0AMC11UBY5r7xgSekVRV8+tpET2ZfRhq0beK+0yYDfIXOYpTr?= =?us-ascii?Q?vdUFUIItfWTVnBuYyEfS3yuWjCzPFcxz12kU4wTw0Z8H61dep0eH1dVshqeX?= =?us-ascii?Q?vEgsmdwTzBrvxQtClWWvKJ0KLBHAnC3qcZGCW98dQ3MH9gyBEDUK4yXfYCuy?= =?us-ascii?Q?Iz5oBJdBHX/zJf2XiQbdtA7lxp2QqupNqUQK0Z/0qkHtPiWlgiCsXWPJY71H?= =?us-ascii?Q?NJmfjXJQKrvSQvUq9EyMXOEi87VBt+gFj/LA1Jut+pI70S1UkqM9tzTmctOu?= =?us-ascii?Q?qbRUSHtUaUQHGujuyTFZl0UWXmWLNvDNAnOHG0XkkrlqNyztF4VA9VXZwF5U?= =?us-ascii?Q?HN1ztzmMteq6IbOfsM8bri8yoOQ0KNWkE2JCjXnX/wBCIS7wACCaTpwlAB69?= =?us-ascii?Q?gYpJJv24xoQcborXRmZbyH5o+OtJNdxmLoYZl+XZbMnW1bES16dTk3jUgYcK?= =?us-ascii?Q?/mheiMTG4HHPb27tW/QWJBYW6ojMyr4CTm2ohNbEg7o5XPnzhJNIHq8FvCUc?= =?us-ascii?Q?wEYtM0iAlV7v5h/v6uxtkP0JbDajE/ZeQhcfyAocjTj9fteJwdUjLTgGpNgz?= =?us-ascii?Q?CJHch2mnVtmgNF16XtouRGiNPFKgychxDuq9dhORC6jPWabLOQ9LmNRG4Zj5?= =?us-ascii?Q?tXPKlUtfYaKGWToDa+GexH45ri3BDaBHh+ZANfF6xSiDo+3yUPLL71Yh3j+j?= =?us-ascii?Q?4THtRdyLp3q4wzN8kXnVuzY0liYjRkLbeqDlX+ht/BIyYG/v5zw76PVTD5vR?= =?us-ascii?Q?1Ibp2otMqGYmrOf4mwFZFyEg0ykw1GSYlLO5sp9yNaK2uu0SACPObRlvUnJ6?= =?us-ascii?Q?01RydQywMWa6NHaz2P5vBfZMhSebOzWYrb/F7E46Jbg0dbPdH+OLoLgC/hs5?= =?us-ascii?Q?z9eclUZC+Q0TgW+MpjTHuoUUnXf9DBDoLgZtRF7BjnCUEa/u4X7O+bW1UBhw?= =?us-ascii?Q?SIsnqHSXcUYYi3xlNwOIZzIjrpss5xMjI+x534nNVb6CV+qFIMlb1s/oIYZQ?= =?us-ascii?Q?cGpoukPCaZHvPYxrqbtNC2ij1NSW38X0RImTd1vrZmt9H1xy4yMou5k4EeCc?= =?us-ascii?Q?IyT2ZJ5GZxGQpOgGKYUX0rTWH3KOV0nCgvazIFgzYrRxqELV6ZafRga67mV6?= =?us-ascii?Q?7834wGDVMoYw0ibPc9+LDFk4SJHeEv3heTnP8bACL+WYgsjCVaw2Z4ZsEqGo?= =?us-ascii?Q?5BpFg/5PnII9vxHNgLay/WlSPJKMa26oAS3RCqtKLOJiGjjRn0CO9wI+yUNt?= X-MS-Exchange-AntiSpam-MessageData-1: ME7zVVKXaKIHZg== X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 20e5b81a-37b4-4612-cdf8-08decdd778f0 X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2026 07:50:46.4854 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: EPxEWfK/N2iBr35j+fYsVJwj0FNrrXZ8znzDAS56tSmQEILO2ol1fiSEUIBvcrVIDGiPQq3OqFu41k4csCN4rQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYTP286MB4024 X-purgate-ID: tlsNG-bad1c0/1781855450-2D9D6744-46C2C895/0/0 X-purgate-type: clean X-purgate-size: 1586 X-ZohoMail-DKIM: pass (identity @valinux.co.jp) X-ZM-MESSAGEID: 1781855471165158500 Content-Type: text/plain; charset="utf-8" When creating a domU with vNUMA enabled, the memory allocation algorithm was dependent on x86. Fix this logic to make it usable on ARM as well. Signed-off-by: Hirokazu Takahashi --- tools/libs/light/libxl_vnuma.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/tools/libs/light/libxl_vnuma.c b/tools/libs/light/libxl_vnuma.c index d181574782..70a92a7598 100644 --- a/tools/libs/light/libxl_vnuma.c +++ b/tools/libs/light/libxl_vnuma.c @@ -259,8 +259,12 @@ int libxl__vnuma_build_vmemrange_hvm(libxl__gc *gc, xen_vmemrange_t *vmemranges; int rc; =20 - /* Derive vmemranges from vnode size and memory hole. - * + /* Derive vmemranges from vnode size and memory hole. */ +#if defined (__arm__) || defined(__aarch64__) + hole_start =3D GUEST_RAM0_BASE + GUEST_RAM0_SIZE; + hole_end =3D GUEST_RAM1_BASE; +#else + /* * Guest physical address space layout: * [0, hole_start) [hole_start, hole_end) [hole_end, highmem_end) */ @@ -268,10 +272,15 @@ int libxl__vnuma_build_vmemrange_hvm(libxl__gc *gc, dom->lowmem_end : dom->mmio_start; hole_end =3D (dom->mmio_start + dom->mmio_size) > (1ULL << 32) ? (dom->mmio_start + dom->mmio_size) : (1ULL << 32); +#endif =20 assert(state->vmemranges =3D=3D NULL); =20 +#if defined (__arm__) || defined(__aarch64__) + next =3D GUEST_RAM0_BASE; +#else next =3D 0; +#endif nr_vmemrange =3D 0; vmemranges =3D NULL; for (nid =3D 0; nid < b_info->num_vnuma_nodes; nid++) { --=20 2.43.0 From nobody Thu Jul 23 22:29:24 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; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass(p=none dis=none) header.from=valinux.co.jp ARC-Seal: i=2; a=rsa-sha256; t=1781855489; cv=pass; d=zohomail.com; s=zohoarc; b=UBxrLifiPBqY2m3jd5WZTO6y41n5q4BQhFBCke9gHEHMKR7QKcXeKnHIutIWQGY9/pTplG2rBJD608M0Hq74rS8iRRBMcpdRhEHE3GuC/e9EqKzFIOWOx8QICiMDAuZ/b0B9wAD+t3Bfu0zkQNUFyFim+O/DgPIVil0Dp+I+4vc= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781855489; 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=YE4gf47/RBMmpv7EH5Y8kPK1UQU4p2tJ9S1/Os3vPHo=; b=AW5e9pQL7pLJYV66IC+3hrLCiAF5LEVlpqRX+o8PIUWiAXft1j48eUSupBw5YhtjCW4pzNDcIYRCBln59gMuU+ewSYPnluDeQRrLDndZKhComQ8SE0sFdX3skac4OUHfIw2dqqb1hM2eP2ITxU93VudlBLFh0gMevbH2Up/L7ko= ARC-Authentication-Results: i=2; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1781855489728433.92434784760087; Fri, 19 Jun 2026 00:51:29 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1341778.1602151 (Exim 4.92) (envelope-from ) id 1waU06-0001Pr-2S; Fri, 19 Jun 2026 07:50:54 +0000 Received: by outflank-mailman (output) from mailman id 1341778.1602151; Fri, 19 Jun 2026 07: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 ) id 1waU05-0001On-NS; Fri, 19 Jun 2026 07:50:53 +0000 Received: by outflank-mailman (input) for mailman id 1341778; Fri, 19 Jun 2026 07:50:52 +0000 Received: from mx.expurgate.net ([194.145.224.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waU04-0000zb-5k for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 07:50:52 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1waU03-004dWx-Ig for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 09:50:51 +0200 Received: from [10.42.69.9] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a34f4db-bab6-0a2a0a5309dd-0a2a4509a6d6-0 for ; Fri, 19 Jun 2026 09:50:51 +0200 Received: from [40.107.74.95] (helo=OS0P286CU010.outbound.protection.outlook.com) by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.0) (envelope-from ) id 6a34f4d7-4999-0a2a45090019-286b4a5fdda3-4 for ; Fri, 19 Jun 2026 09:50:51 +0200 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) by TYTP286MB4024.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:185::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.139.12; Fri, 19 Jun 2026 07:50:48 +0000 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0139.011; Fri, 19 Jun 2026 07:50:48 +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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TkwvEVvyMsy+LI73IDyrjrDFhHj4Yus+Ney73trNKHbRh+aeESnw42gpzTSDp3aOwWRkpD1U5/z13uCOxZC/OcdoTtbaicZgTE+znu0GQ4mfisLBHKtu4pd+tCgsHB8SuG6XD1G/tef6IwjXvULboOITa8YN/pI8kS4D6rLcQ80ILkVO37Lq93aJ/OvKAQFv0Q1qwnsul1nfxaqOFATZ7EZ88KDWcIwAi2sJ8QwAIEvBYpYYMSh3ds6yOlofgMxpXnpagfZ8USc8iTs9bIqI4H+ZeR49TvFKesL92g/CyxLWmlLXHnv6VBBgt+d+qMrxaWyMwgCMFAvbFxlwT/PiGA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=YE4gf47/RBMmpv7EH5Y8kPK1UQU4p2tJ9S1/Os3vPHo=; b=HvrzQkKHzZmPmnun+3zL/cTZzsPbZSUzVRsKYIvdfQbVBucfOm/WdS02WE97fXsMCJ/S/oppVyaqjN+F59e5FjPPmDECRFwOjTzCNdLyNgwSB94B/sg118lTiXkypBZeHX8fPCblbqHegoMBvVjLAl6DlCMTckwr717lYbUxpwleyuNs2FJkY7zJo+lFntF/IDDcTU5LKZY5hitaYFjzIXUc4P9uAfTH5SoiWVUB7GjX70xHf19bkeGgHZiDjIRsRBe5t8AVZZEyTFEhTxgDDHxhzzcwo/wP9nBy70wWqCfeE+yhZih481sQRAu5CyTZLEwdTvpKhezEdUy48FOdqw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=YE4gf47/RBMmpv7EH5Y8kPK1UQU4p2tJ9S1/Os3vPHo=; b=KFbxb2eLItC3QG1cJghKK+9xRpMO0P6etAP5mPWVAjU4Tn9VhwHwb7BK6HTojOvoHlOdjiSe55CoryuVZxdtqqIj7ZmxfQs0jbneED32kDRoBXRZ4bCTsG7zew/OfocTdkU4MfEhPAv7Xo3y70hzRHCufbeQ4rcdI5O1u1E373U= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; From: Hirokazu Takahashi To: xen-devel@lists.xenproject.org Cc: Hirokazu Takahashi , Anthony PERARD , Juergen Gross Subject: [PATCH v3 18/22] tools/libs/guest: Allocate vNUMA memory from associated pNUMA nodes Date: Fri, 19 Jun 2026 16:50:06 +0900 Message-ID: <20260619075011.377116-19-taka@valinux.co.jp> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260619075011.377116-1-taka@valinux.co.jp> References: <20260619075011.377116-1-taka@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY4PR01CA0092.jpnprd01.prod.outlook.com (2603:1096:405:37d::17) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TYTP286MB4024:EE_ X-MS-Office365-Filtering-Correlation-Id: 5c86f4d4-2fda-4861-a9a6-08decdd779fe X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|10070799003|366016|23010399003|1800799024|18002099003|22082099003|6133799003|56012099006; X-Microsoft-Antispam-Message-Info: Fap9pP+m8eTufyzAXJPEKjhI8pg70WskgGmAGX/cAmzfPbgA5xrzofNuk+c8Zo7W9D59PPb0Bwj5+UkCehsq6vzKM+A9EH65NFYeQ+7Rdwfg+GkNg7Lyh5c4tHuFs5mJU/hCD7Uf121zAUrOHCNw4h5c1GnIs0IN1x1ItJfLS61w8KW3Kln6MvY0c9KUaDnGUjJHHJUFCxxFVanMIE6xUwy8tVxKcA/Z4JMU/AS9oAtmah5DcIT2DQACOa2wn2qTu8jzgT90t3z+9RVAkddOcGKNyqsCnx+/Oj35xltvdunaJvcxmziDYWoT2/e9+B0bkfWVny3R42ZK5i36/ob9Ddy7cFWVQqxmhVCBBGLW1cquD810ZppTZ9l1PFPgqTbjtmfwnMT0uFzst/jnrFtZYp39tEXT2QMikKrYN62JD0p9hpfdDq/DgZovMxzrBqBPykkLmdzOOQwXrlTuOzrKj9eYQhTiO76bip+9jRrw2KmH1XhjwoGT56qoYp2M1Apa3cx9EukMNa5YM1grVKwd+Wgi+I2XyvdhlGGoFMSyx9vMTSmsnsSiljo0FtG9HuZYIdiO24kQMUvbPzxO3uNW1OUJi8xkgMYCM/tc5yL6qQrJ+540Vf1J4EvRJlNliH0CR5xoNEOfvNqpsLHaJIFswltfVuxlJEG1prkwPscZFiA= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(10070799003)(366016)(23010399003)(1800799024)(18002099003)(22082099003)(6133799003)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?8miG2rAIjvgt+vDIh7XVrUQfRjWTNMIlgyfaG6Y2eH/zTY5gQL8iKqonAA/u?= =?us-ascii?Q?6r0/ViGnfVk3SsJ2KLbSvYhaldYQY0RP0PdUrWrB/878SJlzCRP1aObJLy2T?= =?us-ascii?Q?Ls9kzOBQM/MAGlnwyPf4oP1QSqQtI4o8KBPOHkh10qRDU+rOP7/JHv1OT1rc?= =?us-ascii?Q?uqFcxMiLi0c7r5lLSuPW1obJZo8V3g36hVC2gRRjZFHLHcTNTBG3SSeKiI1z?= =?us-ascii?Q?7iFfGxT8W7vux2Ef21NzwD0PJEEew4feH+EpB2/29aX7z1OKn8Ilo8G11aR1?= =?us-ascii?Q?y9hLBdK/aBv94ccyzA/G6AcY1/5U0CfPHYuQACZHqIy53cC4o6B26qxoGbMe?= =?us-ascii?Q?BP3YYGDLKt+MVsRWIYa5MBi9u44cg7KKx9K2Ci4id2UxcwiGggqkqElHAJgz?= =?us-ascii?Q?GpnCH9Rw3PQDq614kP4Pmf9J6jEu8j0dRyMW/VZlYtUcJ0QW1gwN8AqAHn7R?= =?us-ascii?Q?hnR3GWiaVJ2a1KU5liaGBJI8rP4kG2wpHmgnW6WchTDbLw+7ZL/DDenWRYjz?= =?us-ascii?Q?snjavGO3TJbUwAkChV+/cSS/xJEpTDF42Sj29ctA8GQHR80vBnsJQvu3rbCC?= =?us-ascii?Q?O//N7G6TimbyTsmSYq28cCZtOkj/AFte0L+lkb77qesqZQ3v3tNYX6eNowpz?= =?us-ascii?Q?r/0TA7endjingn/qlL2OvVbSo8br/N/HY9R5Dl/xadR4Y9I0dF2GQK3wc644?= =?us-ascii?Q?AQ8N5HMSvRQjVveYhGMlMZDam/EyfpIpsa1rwU+fxoTI0ZvzjJqzWn4LGwbs?= =?us-ascii?Q?Jcuj7T4bfTsdYQruC5jP7+jSR1qh+OJX+toX2oklvgvFmIy8B7kMWh/L/GgK?= =?us-ascii?Q?ZOYkzvc8at08Vr9jhsfdVHS+5GlK67AsNjgYT4tNL0go+LquxgYCUjHY/MQN?= =?us-ascii?Q?y9ta8GRe1BOviKkxS7uPDOscZysWkl/uTe80kiMfs0tWJfYvcUNt96cIJ3M4?= =?us-ascii?Q?5lr7iZHb3nhW+QiI/nH9l2YZAhBZv+iszp23ZDAbS2I0uRIkZAKcXc/S72ct?= =?us-ascii?Q?UKwm1JEpMBO/Tvul2qhh0GAe2ZULcv8SGbcMAl908SgDIj+9TL1GDQviwhdl?= =?us-ascii?Q?njH2HGznbKOeU81Nq0RQ2DKZJJccJSKYeeho92Yv3GTO5RakQx7OoEvq0Ne0?= =?us-ascii?Q?Xax8hOV/n9lnq0GlmFZzbHwyf53V98Mb0G06kzsf//sTZ1MqSzGUZmcCqj4/?= =?us-ascii?Q?Mh5ZH6guM8Fyoc0Kj96tiD56WGrHaTNzk+LqqMhUpGTKCdyBRO/aU4I1mj/1?= =?us-ascii?Q?V58BUSdjtjRDaX7vbQHnpWwGCbUqQgK+t9EsGP4q/RjmYW7JUlZ5csT7iLk5?= =?us-ascii?Q?yw3sm0onoIhHpdLdQEgkeDZ5gv6jpfcd6n9iPYvUxuUL8Megwra/NNKUQnz7?= =?us-ascii?Q?RdJDQkI5yUTkJxOs1OZKfTJUtQ/HYK2TrIVyQtvJim5uDR0dMt7ZhFkQiRen?= =?us-ascii?Q?z9c8JUBabt6Joa1rllLw1dlFhgUM25RA1mwSaldBPqApslvhfx++humEOxLT?= =?us-ascii?Q?U2DP6aM10cUmOezu+m8I1UyJUupL+hhAsrzUyQrRt04ipzE1yu4dIIR1OYcK?= =?us-ascii?Q?SpLllHA66g8S2UhKcnQyAah0dBTD105r1IBrig3URiNVoYxsj7QSYMz1LJsV?= =?us-ascii?Q?gBI1/ou0C8BBoYIyrZxNcO2+cY0ort+79hnOaN3Yj9aMEWKWAxJ+oqBN+QUQ?= =?us-ascii?Q?kUWNJZUvoCQ66x1KYqB3MJgnKQBUb4hGeNPOENYQPdqx9N6zMeAsTLUEyQ/N?= =?us-ascii?Q?FaEBNTmnzUm/fn0u6aU8ifVgVnrhyj5MY9kT1b8KQl1/3vgYdXrj/xmfIFGp?= X-MS-Exchange-AntiSpam-MessageData-1: Oa0sjPdA6MLlCQ== X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 5c86f4d4-2fda-4861-a9a6-08decdd779fe X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2026 07:50:48.2416 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: +PSzjwwWZJzCyTSRYCmvWoAE+T5+MiFeJDhZT9Y/IcBvLdHeD1z6VcbHkDqoUgMzV7CxFnPuqQU4y07KnzY4aw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYTP286MB4024 X-purgate-ID: tlsNG-bad1c0/1781855451-F79EF744-1D6DB7F5/0/0 X-purgate-type: clean X-purgate-size: 5685 X-ZohoMail-DKIM: pass (identity @valinux.co.jp) X-ZM-MESSAGEID: 1781855491094158501 Content-Type: text/plain; charset="utf-8" Allocate memory for domU vNUMA nodes from the physical NUMA nodes specified in the domU configuration file. Signed-off-by: Hirokazu Takahashi --- tools/libs/guest/xg_dom_arm.c | 57 +++++++++++++++++++++++++++-------- 1 file changed, 44 insertions(+), 13 deletions(-) diff --git a/tools/libs/guest/xg_dom_arm.c b/tools/libs/guest/xg_dom_arm.c index cb0af9f35a..699b5e749d 100644 --- a/tools/libs/guest/xg_dom_arm.c +++ b/tools/libs/guest/xg_dom_arm.c @@ -236,7 +236,7 @@ static int set_mode(xc_interface *xch, uint32_t domid, = const char *guest_type) */ static int populate_one_size(struct xc_dom_image *dom, int pfn_shift, xen_pfn_t base_pfn, xen_pfn_t *nr_pfns, - xen_pfn_t *extents) + xen_pfn_t *extents, unsigned int memflags) { /* The mask for this level */ const uint64_t mask =3D ((uint64_t)1<<(pfn_shift))-1; @@ -274,7 +274,7 @@ static int populate_one_size(struct xc_dom_image *dom, = int pfn_shift, extents[i] =3D base_pfn + (i<xch, dom->guest_domid, count, - pfn_shift, 0, extents); + pfn_shift, memflags, extents); if ( nr <=3D 0 ) return nr; DOMPRINTF("%s: populated %#x/%#x entries with shift %d", __FUNCTION__, nr, count, pfn_shift); @@ -285,10 +285,12 @@ static int populate_one_size(struct xc_dom_image *dom= , int pfn_shift, } =20 static int populate_guest_memory(struct xc_dom_image *dom, - xen_pfn_t base_pfn, xen_pfn_t nr_pfns) + xen_pfn_t base_pfn, xen_pfn_t nr_pfns, + unsigned int nid) { int rc =3D 0; xen_pfn_t allocsz, pfn, *extents; + unsigned int memflags =3D 0U; =20 extents =3D calloc(1024*1024,sizeof(xen_pfn_t)); if ( extents =3D=3D NULL ) @@ -303,6 +305,14 @@ static int populate_guest_memory(struct xc_dom_image *= dom, (uint64_t)(base_pfn + nr_pfns) << XC_PAGE_SHIFT, (uint64_t)nr_pfns >> (20-XC_PAGE_SHIFT)); =20 + if ( dom->nr_vmemranges > 0 ) + { + memflags =3D XENMEMF_exact_node(dom->vnode_to_pnode[nid]); + + DOMPRINTF("%s: on pNODE%u for vNODE%u", + __FUNCTION__, dom->vnode_to_pnode[nid], nid); + } + for ( pfn =3D 0; pfn < nr_pfns; pfn +=3D allocsz ) { allocsz =3D min_t(int, 1024*1024, nr_pfns - pfn); @@ -312,7 +322,7 @@ static int populate_guest_memory(struct xc_dom_image *d= om, { allocsz =3D 1; rc =3D populate_one_size(dom, PFN_4K_SHIFT, - base_pfn + pfn, &allocsz, extents); + base_pfn + pfn, &allocsz, extents, memf= lags); if (rc < 0) break; if (rc > 0) continue; /* Failed to allocate a single page? */ @@ -321,22 +331,22 @@ static int populate_guest_memory(struct xc_dom_image = *dom, #endif =20 rc =3D populate_one_size(dom, PFN_512G_SHIFT, - base_pfn + pfn, &allocsz, extents); + base_pfn + pfn, &allocsz, extents, memflags= ); if ( rc < 0 ) break; if ( rc > 0 ) continue; =20 rc =3D populate_one_size(dom, PFN_1G_SHIFT, - base_pfn + pfn, &allocsz, extents); + base_pfn + pfn, &allocsz, extents, memflags= ); if ( rc < 0 ) break; if ( rc > 0 ) continue; =20 rc =3D populate_one_size(dom, PFN_2M_SHIFT, - base_pfn + pfn, &allocsz, extents); + base_pfn + pfn, &allocsz, extents, memflags= ); if ( rc < 0 ) break; if ( rc > 0 ) continue; =20 rc =3D populate_one_size(dom, PFN_4K_SHIFT, - base_pfn + pfn, &allocsz, extents); + base_pfn + pfn, &allocsz, extents, memflags= ); if ( rc < 0 ) break; if ( rc =3D=3D 0 ) { @@ -415,12 +425,33 @@ static int meminit(struct xc_dom_image *dom) assert(ramsize =3D=3D 0); /* Too much RAM is rejected above */ =20 /* setup initial p2m and allocate guest memory */ - for ( i =3D 0; i < GUEST_RAM_BANKS && dom->rambank_size[i]; i++ ) + if ( dom->nr_vmemranges > 0 ) + { + ramsize =3D (uint64_t)dom->total_pages << XC_PAGE_SHIFT; + + for ( i =3D 0; i < dom->nr_vmemranges; i++ ) + ramsize -=3D dom->vmemranges[i].end - dom->vmemranges[i].start; + + assert(ramsize =3D=3D 0); + + for ( i =3D 0; i < dom->nr_vmemranges; i++ ) + { + if ( (rc =3D populate_guest_memory(dom, + dom->vmemranges[i].start >> XC_PAGE_SHIFT, + (dom->vmemranges[i].end - dom->vmemranges[i].start) >> XC_= PAGE_SHIFT, + dom->vmemranges[i].nid)) ) + return rc; + } + } + else { - if ((rc =3D populate_guest_memory(dom, - bankbase[i] >> XC_PAGE_SHIFT, - dom->rambank_size[i]))) - return rc; + for ( i =3D 0; i < GUEST_RAM_BANKS && dom->rambank_size[i]; i++ ) + { + if ( (rc =3D populate_guest_memory(dom, + bankbase[i] >> XC_PAGE_SHIFT, + dom->rambank_size[i], 0U)) ) + return rc; + } } =20 /* --=20 2.43.0 From nobody Thu Jul 23 22:29:24 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; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass(p=none dis=none) header.from=valinux.co.jp ARC-Seal: i=2; a=rsa-sha256; t=1781855489; cv=pass; d=zohomail.com; s=zohoarc; b=Xfkmaq47DuG9NNFOFGQ6khaP8YHQQbBjpgQH8+kfwnCzlOQBgFqqROr0Zd2riUgqdaQnBEFcVm8c5uibAerUaj8XKGXrB0tM9mv/khN6uyeaJuqNhmh5bL8SwBx52kSKIs01i/gyVRNCArFcc4kt2WHHnCRse3tFRcpVQu9JbgE= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781855489; 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=t7UlpS6apa4vpx3dkvWRk85jIONXnUZGoFgJW/UKF7A=; b=Mc4s59dJ+yOZZvkIFW6xjwYR6KryHtM8y30hJlRTIOLEO0qPmljPVNKKXgSfBgzvGSpzUOIuLwRiw04a//kp7gccuo2ayySLXVrGPnaJp4niB7D/UhTgEbBVgWk/4HBmhtmK+HN9WeaiZHyrR+BTDU7WfHETDhELgd1cqmsb+dE= ARC-Authentication-Results: i=2; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1781855489358876.2022225514362; Fri, 19 Jun 2026 00:51:29 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1341788.1602160 (Exim 4.92) (envelope-from ) id 1waU08-00027H-TZ; Fri, 19 Jun 2026 07:50:56 +0000 Received: by outflank-mailman (output) from mailman id 1341788.1602160; Fri, 19 Jun 2026 07:50:56 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waU08-00025M-KB; Fri, 19 Jun 2026 07:50:56 +0000 Received: by outflank-mailman (input) for mailman id 1341788; Fri, 19 Jun 2026 07:50:55 +0000 Received: from mx.expurgate.net ([194.145.224.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waU07-0001iO-7l for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 07:50:55 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1waU06-004dWx-Kp for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 09:50:54 +0200 Received: from [10.42.69.9] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a34f4db-bab6-0a2a0a5309dd-0a2a4509a6d6-8 for ; Fri, 19 Jun 2026 09:50:54 +0200 Received: from [40.107.74.95] (helo=OS0P286CU010.outbound.protection.outlook.com) by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.0) (envelope-from ) id 6a34f4d7-4999-0a2a45090019-286b4a5fdda3-5 for ; Fri, 19 Jun 2026 09:50:54 +0200 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) by TYTP286MB4024.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:185::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.139.12; Fri, 19 Jun 2026 07:50:50 +0000 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0139.011; Fri, 19 Jun 2026 07:50: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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ygEqAl0TLfLBtVXmteKuIEWkuNPQens2j/wc3PGSakNOzCyaqRiaWwu3MJEYVWfhDAxIMVDwd6WaEcdZ7s2Rg7BQ1ttWhwjIa5NqLEj+QsacuBroOKdbIn7pqn+ojmAZM7ley5dMtK5tt7sC9SU3Sr05i6IWvgX5zSJh0y/6wvzpwnATlpqDMjV2A775f5YyJGuKheocBtCX6Lh7IcybEgl+Ape0vlnYaL8UzGZGWw+pxv6HQMDKG1t451cQNS6BMMxj91RDFvJFXpzjEgN0m+0HpSIB+ExTfRw2NzbiUtKJX8tVX/1yP/jEvlSUpXD+xY91ESbNgmmHAmSf2pgjiA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=t7UlpS6apa4vpx3dkvWRk85jIONXnUZGoFgJW/UKF7A=; b=NYfCYn/6bkVPlx5ZHRmycc8vSGBZx5D8g33FQpT+FPVSi/CfjqXPyK8I+/rp1kr+mXmrk5qLM4M9J7+KQVaSzJv7zALo2O3lSG/fyJ4shTdllZgoC4H8ep90htzDDZWekLX98I6Pc1AQJk0O40fFx60mSd4lB9SsEQ0O4G8KxyY6v9LiA/gnA8hI09NQsjAV5Atmlv43uwPkVzkL6Gx/RFtZ0KkduJDPjDLiWD3znVQWfvn+mbiYK4rNlhFYO7xTau3QP/YOAIhRhs2oHpL7iuHQor1Rox3meqmicVDQAovEZO2J5mCkPR/rJmZRVUgRlUllnL0VDwqHys0CUWAiRQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=t7UlpS6apa4vpx3dkvWRk85jIONXnUZGoFgJW/UKF7A=; b=Kg1p8imNZNDZL4Gw0NbRrd0+bINztee1qsJyMAVsX/PTuO+5uVlQit6m8HtV6yiMxn8/J2z8ISlxjz4oywLQjedzFuTau2k6Xn4CTxRiG+hZgY3w17W7/o+FyvRZAp4m6Lq8psZIpd7Rn3X7KaMGisYhwWrbRwFX0GbYzJ8zFyw= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; From: Hirokazu Takahashi To: xen-devel@lists.xenproject.org Cc: Hirokazu Takahashi , Anthony PERARD , Juergen Gross Subject: [PATCH v3 19/22] tools/libxl: Add 'numa-node-id' property to DomU memory nodes Date: Fri, 19 Jun 2026 16:50:07 +0900 Message-ID: <20260619075011.377116-20-taka@valinux.co.jp> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260619075011.377116-1-taka@valinux.co.jp> References: <20260619075011.377116-1-taka@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP301CA0023.JPNP301.PROD.OUTLOOK.COM (2603:1096:400:381::16) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TYTP286MB4024:EE_ X-MS-Office365-Filtering-Correlation-Id: 476c450d-3a21-4c01-7fa3-08decdd77b0c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|10070799003|366016|23010399003|1800799024|18002099003|22082099003|6133799003|56012099006; X-Microsoft-Antispam-Message-Info: lJ++pdsUneYnUqSJ6pVWSjru69IiCKHYSQmjAfaVxgKGDh3bpCPnCrqt/wnx2311RQP67QHvAuATGwR6ysM2wXB4n5HpBidLKkV/Oq8EZTG8nAuqr+rZ+x/+glc1C2UZyP5DymwcUP5hfcRZsIMNx/sccqiM40RdBccW3S72IDgEbkJRPYT5Zw5eXLY7XxyZqVzxdZ46rSdJB2Ec1ZxnmZxXJCkwytayRmSeMHb6fDpNZWf53XAFN0os6zk3+ACWNCM3QY+rC9hZ/58LrdrvgBs9CSR9BAiuRP7ExBV6zy+ADNDHSL2PVCAoHxRjeRUQTEc/V//1pWpi9xoVhpfsYCBUeWat8Volzip3RMj7GNUr6t9WEoZIonRXRIv8KE7C/CX3NdmsEbHm33ptgc+lJ5Fa04riWa3wYaOgcNUoOTft8M5Bff1iNyx3YbP0rg7lRd5dv+Bekj2JxrvLez9sR9oiwaMcRqB8A+cby8TmXXgNV/WsH9DHWrhM7UnGYDEGLp7Kbz0O1La7WtsLvmtxBWkMfhv1l7p/mrxSko5quIFDVA9YY3QFrJO3UBbH/U5/GKJPcIBpc5pOy4sI/wnncah+4SBSLzsy1YN7d2Bwt5c9yP0F8XrDhCIlh4NNVvEnfabcExOIWHweH7AUevuDwjvYFFno0nZO9zbtNY3Scxs= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(10070799003)(366016)(23010399003)(1800799024)(18002099003)(22082099003)(6133799003)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?CjmWsd6Xmv0AHw1u8xatLJeC0B+I7/FDcRdd32jPKSIcgDHv0SDfRj0edgiK?= =?us-ascii?Q?tl6mQOxteoEnGj/BCifvTYbY47r5FWKxrpFJRc7zcscI+0iV70ikN1DW4u8T?= =?us-ascii?Q?Ou6VR+qB3H8MbrCQ2lVV5utE1GOTfYk9lAUIOZru3r91eG6cjCUfTdC+eUSX?= =?us-ascii?Q?IiTBQEEqEK9C4JfirSPXVMHrVxWk86PJBv6opdVnZVL1ZjLH9NJYn4ppMzUK?= =?us-ascii?Q?rkxYEfNjvBrqTsDBs/dRu3+dKOz5V+sp7I23vLNRaTMQC4qJ86M6BanD5oY8?= =?us-ascii?Q?IqWHh+dwuO3LypThSroNqm3OdJo4XfalqqCLo2lH2J0ZdbNWMEXQZSI5Zv/q?= =?us-ascii?Q?E5eGYfeAZT5NNtWOghr+OLrpmrOXyxVdzdX82SpUOCHDafI6byY5turhZT8/?= =?us-ascii?Q?vptLE32zUHkiZKf7O64ln3WixIyuZeCLmYsPsC6kBLxfMYNVnN6ZhXcsZrcQ?= =?us-ascii?Q?1LyL1MzalsDrK2ItgAVw0oxvIMjeE7gRVKI4Fb3ZuwNZCPae5ATnKnP12nB/?= =?us-ascii?Q?PAgIaJAiX+iYMgYkxrpgiKgn1vTkB1+hooONcD/DGDY+tRu3XtpcmKkgqCp9?= =?us-ascii?Q?GyBQYfy89WJ53zJwXxxa5TEjHDFeimy982KgGoDSdGgSho0NYnFam3KsDbHn?= =?us-ascii?Q?80VOjTH0YYVugOwWaHALyi2rBHKLj4d5IfnJiVLhCmSO360QDbOkb1dRI49L?= =?us-ascii?Q?4lSb4PviL1WU10Rsgjf+RV8LNeAmOj2Bb4xpeZ3ChhIcb38BYZ1nqfHJHuQI?= =?us-ascii?Q?pZGsqULUlDz17oeJZrPcVG5k4T55QLciy+oQ6zTAgS1b31JvFHqRkChCJqBq?= =?us-ascii?Q?MdsSkEof2m0VoBCrctMnPJJ6isI5m2tygNlMkYBpe54UjfYc6sRMriBa5U7C?= =?us-ascii?Q?lCOMRzC8zqyxmBSdRRHEx/A0mOSJsXhln283gqsOFaV3GmH0na5HIWG4p1nH?= =?us-ascii?Q?gdwLNyWxxIBWO+SbAOtwm6GF+koh7XO3riu/KFZI5WrpQJKvbr7IUJ+cPQob?= =?us-ascii?Q?lVmqTGBg4J8GjoHR4K29cyR5qkcu1Y04ptjZjpTv4bqoF+4O97i15p9SrvFf?= =?us-ascii?Q?b4Ce0YFPVOquAJY2ut7O3P9fU03o5ebcFTYzeL4tBAKCVyIzV0b2KGIi71vt?= =?us-ascii?Q?l6hDIIzzJ70FMxxcVeMjK7VdZsO1/D4elf4WuJVArKEQ4NB2LvknscMDDmNh?= =?us-ascii?Q?Q7OlR9HKkSAt3rt3d2w/kgQC3dKPIgLcaJ7AHoOHJlNfioOmAcSjGdKK1+gB?= =?us-ascii?Q?pLo9BsEFNSHuydxAmVBBpVfLv3c8YH1osrD/RRNB4vqIlAhTUQ/puyFkPGkZ?= =?us-ascii?Q?oLEmiDjDhpJMIbjUCVM9hIV62d9PHh/Vo92SjvAFhRqTfXXQJ0tnDNlfjAg8?= =?us-ascii?Q?IBKYuo2qwZ1ZLmuejFmwJjRc1ZuLvvXx0kJ+srNDYL9ZGOw1I4v3sUyor3yX?= =?us-ascii?Q?RZV6dMeLaG1wk/8tkc9Hdkm0BciGIvx5WjrTFKNWq0YykWxGta76/oPJfynB?= =?us-ascii?Q?ctJNhFQn0jYjMsKyWd79/Z21MjToxvHU0FVsbsqAGEqdlexZZuDGWH8opXXB?= =?us-ascii?Q?JWderPdacYAQKawW6zFRVJmOvK53INhsQLMgWuZVAjRVueEDIMrEA29kVAXl?= =?us-ascii?Q?mt4PrCfYI/Ab92KprzG+rkzYdJlxyOs52eqyo+IuBHBmXJEyHUEKxDoC2yQi?= =?us-ascii?Q?ujaztKsMWHuWgwdU5LnokqRqVALQgU0RZAqKCcbwLh741DQnNsnmEojp/UkF?= =?us-ascii?Q?Mwk//363PJ+fyHO+0TEU+aln6yPGg0myJrV5Ns1+xac5Zb7nmA+gg9kaExbS?= X-MS-Exchange-AntiSpam-MessageData-1: YtCIvSH9n7gQTw== X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 476c450d-3a21-4c01-7fa3-08decdd77b0c X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2026 07:50:50.0339 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: TZYNakjY/P81VuF+0VFdWQ3l+UFSyRuWjBzd7yPlvvxNaciHim2vFJ4zMDS/JlJSdljlzF8nWgolG3RhpiVa7g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYTP286MB4024 X-purgate-ID: tlsNG-bad1c0/1781855454-F6BE6744-B1AF2686/0/0 X-purgate-type: clean X-purgate-size: 3897 X-ZohoMail-DKIM: pass (identity @valinux.co.jp) X-ZM-MESSAGEID: 1781855491084158500 Content-Type: text/plain; charset="utf-8" Add the 'numa-node-id' property to the memory nodes in the Device Tree passed to DomU. The NUMA node to which each memory node belongs is determined based on the virtual NUMA configuration specified in the xl domain configuration file. Signed-off-by: Hirokazu Takahashi --- tools/libs/light/libxl_arm.c | 50 +++++++++++++++++++++++++++++------- 1 file changed, 41 insertions(+), 9 deletions(-) diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c index 7e9f8a1bc3..6eae33cdd2 100644 --- a/tools/libs/light/libxl_arm.c +++ b/tools/libs/light/libxl_arm.c @@ -670,25 +670,53 @@ static int make_optee_node(libxl__gc *gc, void *fdt) } =20 static int make_memory_nodes(libxl__gc *gc, void *fdt, + const libxl_domain_build_info *b_info, const struct xc_dom_image *dom) { int res, i; const char *name; const uint64_t bankbase[] =3D GUEST_RAM_BANK_BASES; =20 - for (i =3D 0; i < GUEST_RAM_BANKS; i++) { - name =3D GCSPRINTF("memory@%"PRIx64, bankbase[i]); + if (dom->nr_vmemranges =3D=3D 0 ) { + for (i =3D 0; i < GUEST_RAM_BANKS; i++) { + name =3D GCSPRINTF("memory@%"PRIx64, bankbase[i]); =20 - LOG(DEBUG, "Creating placeholder node /%s", name); + LOG(DEBUG, "Creating placeholder node /%s", name); =20 + res =3D fdt_begin_node(fdt, name); + if (res) return res; + + res =3D fdt_property_string(fdt, "device_type", "memory"); + if (res) return res; + + res =3D fdt_property_regs(gc, fdt, GUEST_ROOT_ADDRESS_CELLS, G= UEST_ROOT_SIZE_CELLS, + 1, 0, 0); + if (res) return res; + + res =3D fdt_end_node(fdt); + if (res) return res; + } + + return 0; + } + + for (i =3D 0; i < dom->nr_vmemranges; i++) { + uint64_t start_addr =3D dom->vmemranges[i].start; + uint64_t size =3D dom->vmemranges[i].end - start_addr; + uint32_t nid =3D dom->vmemranges[i].nid; + uint64_t regs[2] =3D { cpu_to_fdt64(start_addr), cpu_to_fdt64(size= ) }; + + name =3D GCSPRINTF("memory@%"PRIx64, start_addr); res =3D fdt_begin_node(fdt, name); if (res) return res; =20 res =3D fdt_property_string(fdt, "device_type", "memory"); if (res) return res; =20 - res =3D fdt_property_regs(gc, fdt, GUEST_ROOT_ADDRESS_CELLS, GUEST= _ROOT_SIZE_CELLS, - 1, 0, 0); + res =3D fdt_property(fdt, "reg", regs, sizeof(uint64_t) * 2); + if (res) return res; + + res =3D fdt_property_u32(fdt, "numa-node-id", nid); if (res) return res; =20 res =3D fdt_end_node(fdt); @@ -1365,7 +1393,7 @@ next_resize: FDT( make_cpus_node(gc, fdt, info->max_vcpus, ainfo) ); FDT( make_psci_node(gc, fdt) ); =20 - FDT( make_memory_nodes(gc, fdt, dom) ); + FDT( make_memory_nodes(gc, fdt, info, dom) ); =20 switch (info->arch_arm.gic_version) { case LIBXL_GIC_VERSION_V2: @@ -1716,10 +1744,14 @@ int libxl__arch_domain_finalise_hw_description(libx= l__gc *gc, if (res) return res; =20 - for (i =3D 0; i < GUEST_RAM_BANKS; i++) { - const uint64_t size =3D (uint64_t)dom->rambank_size[i] << XC_PAGE_= SHIFT; + if (d_config->b_info.num_vnuma_nodes =3D=3D 0) { + for (i =3D 0; i < GUEST_RAM_BANKS; i++) { + const uint64_t size =3D (uint64_t)dom->rambank_size[i] << XC_P= AGE_SHIFT; =20 - finalise_one_node(gc, fdt, "/memory", bankbase[i], size); + finalise_one_node(gc, fdt, "/memory", bankbase[i], size); + } + } else { + LOG(DEBUG, "vNUMA enabled: skipping memory node finalisation as no= des are already populated"); } =20 if (dom->acpi_modules[0].data) { --=20 2.43.0 From nobody Thu Jul 23 22:29:24 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; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass(p=none dis=none) header.from=valinux.co.jp ARC-Seal: i=2; a=rsa-sha256; t=1781855486; cv=pass; d=zohomail.com; s=zohoarc; b=DPjm1xfFIiPH2l/Bwe547McH8VUCVdcsh8RQIm23el2o6TOPLZ6gRlhlJLR/vgtlvXB4hG5XgEntD5XNQhMUNLj5ICbdbSRx9LLXttiZvfCK26zUkZoVepMXCdy+k7u6FQPjmXBn1P4tzy9ke/aegTvX1D5hateo6/zS9gx96z0= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781855486; 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=CSvaKno6wKGF5JB9lrdTQaier2MX8kOfEf4CgdZcZTA=; b=iM2dtjk8wzrvyI08kGGG7EYUlt5JV8DeiUU6ArdXiXT3l/Qfaesd8QG0m3I3NhYcdTZ02mcWagWO4eqnx55Ta9nfcCrFTumE1XVkEm1qxg89gdBTeh00VVKMPz6q+Lc/QInMozmKaOWeCTkWcxaXgNQlriiF8jmcPUvb0xz+SD4= ARC-Authentication-Results: i=2; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1781855486218918.1455227564969; Fri, 19 Jun 2026 00:51:26 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1341799.1602171 (Exim 4.92) (envelope-from ) id 1waU0B-0002f1-B4; Fri, 19 Jun 2026 07:50:59 +0000 Received: by outflank-mailman (output) from mailman id 1341799.1602171; Fri, 19 Jun 2026 07:50:59 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waU0B-0002ds-4b; Fri, 19 Jun 2026 07:50:59 +0000 Received: by outflank-mailman (input) for mailman id 1341799; Fri, 19 Jun 2026 07:50:57 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waU09-0002IP-Ks for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 07:50:57 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1waU09-00Dy7y-0w for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 09:50:57 +0200 Received: from [10.42.69.6] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a34f4d0-e002-0a2a0a5209dd-0a2a4506dc90-34 for ; Fri, 19 Jun 2026 09:50:57 +0200 Received: from [52.101.125.91] (helo=TYVP286CU001.outbound.protection.outlook.com) by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.0) (envelope-from ) id 6a34f4de-b690-0a2a45060019-34657d5ba6ec-3 for ; Fri, 19 Jun 2026 09:50:56 +0200 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) by TYYP286MB6155.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:1c2::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.139.13; Fri, 19 Jun 2026 07:50:52 +0000 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0139.011; Fri, 19 Jun 2026 07:50:51 +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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GgpPST/KyND+N9IkKwWxU73BInLmcW2Ok8OwWiWPeYFOJkQY3BPlAIMkDRM4R/rBfz8/jVrFjmdcmEz5z5n3mTHc1P1kno/sa5qZ5JY514DVswFSZGhjdjLoqJ1KA/q92FUi+etD+xTrxxzTv6CE6CdUd/mChFr52NspTKpsRszpl5L8IsPfUpS+bDaax5rb50bp2JOBa+gPA911ZOCZQ5Z+OBRPI4g2mNVHeSGB3tigvUKJq+7UrJYYDBsIMWz5jezpEg7CgOZCDpmPzTRFn6ycfKkR5J+RgIiP4lCfRWiYtGQJUIMbAahK5lSJU4JbhjtwELiCYCqn+8Qq7SYDTw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=CSvaKno6wKGF5JB9lrdTQaier2MX8kOfEf4CgdZcZTA=; b=MFM8OShu5kyLEOXmumAoeRHWYHDHFv/+zlT1cfFJn1Tu53fBww5mAJBkCxvcKoQw8oH1fsNEgOJrQVqDGalA99AIJEb5ezKHlABsjfjaxD+YcqoycNzhqklTkn5MS0A3lF7iJVG+5qCrjk93RRkzC612uS2rM/5DNJsRxE6mwcMHwzjbmOLYzJQ3A8cY7UIwmLuBVoaw7qnL5lgdnsbqQiDD8Ag+76HUwIz67JASQzMM0vK5dtRVNXrOeab/1j9AUxiamiTUW/dSFOVHablHqdvEbdoWyDwa9NVJgQle3ysyuKY0ZPwPOPr3QuBqgw9yaqaZjKpTc6jLoLWxmf5P4Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=CSvaKno6wKGF5JB9lrdTQaier2MX8kOfEf4CgdZcZTA=; b=alZW4t6UV9cfo20eBA19EC+4EKurM+Rq8ZWxDEY0nhKFdHKNDVofFtGnUc+8/sZDGVNCmqBz7dQcieFFqy5dBs5Caioj8iopl91WSrYGqHsT/z7MqehpxuqJs7qAYIlyw5CAlT2wTJhO9/ccwZt0OsiZAC0hvCwMfPuscN4C9Sk= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; From: Hirokazu Takahashi To: xen-devel@lists.xenproject.org Cc: Hirokazu Takahashi , Anthony PERARD , Juergen Gross Subject: [PATCH v3 20/22] tools/libxl: Add 'numa-node-id' property to DomU CPU nodes Date: Fri, 19 Jun 2026 16:50:08 +0900 Message-ID: <20260619075011.377116-21-taka@valinux.co.jp> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260619075011.377116-1-taka@valinux.co.jp> References: <20260619075011.377116-1-taka@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP301CA0027.JPNP301.PROD.OUTLOOK.COM (2603:1096:400:381::9) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TYYP286MB6155:EE_ X-MS-Office365-Filtering-Correlation-Id: 67d66ad6-c34d-4545-e68f-08decdd77c26 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|10070799003|23010399003|376014|18002099003|22082099003|56012099006|6133799003; X-Microsoft-Antispam-Message-Info: oBNGTfBNGSjL6YbZPe7HpVzH7B5jOK1ZtJ8rHon19FRpvP/kOjG1Aiicw6BPqWRF5nEEC1VtVWJX256ZDIQ/ZbHRaxCmwiCVcdKOGg8y8pdmmfTq+gvd795t6Ot2XQkTJ491Hermv4Pcrw53wBEJJ2C6jtYbPFwiS3IWj4Ejx+8rd72OERolimLrH2dtI/zSwJuxLkYJ4cCVpixQy7eBKNvzJIJAhmw2woCZeLDZGnmoYb6NqbblyNwEmhvhCaRnigDLhS1anw7ixXdE2/K1d/Ei851bVPkoH+UG4v2X1ceBKqM/yMVt4VNCoqvtsMATiG/EsXBPbyxC6koyj8vtBqMQ3Knf/RmkybnRIOw1gEI5MvjuI4GZHKI7n6YbJ2YP9+uAiHHonDsG3q6HQIhFmKNLMo5Pcs3ML20CFwMQXywK7h/pccjGh3GwOnHXH7cpErOBYjStEy+EB4Qu1iysTchr0I17U2zdil/K+RN8D4hXZG2Y+x0i2b4lUfE5EtCjDD0i6OIDc5Jep+0F9+MjOanL55bMgROs9AhgN8H4/Ooc4pxifZXrZMPNLp09yArEuFzMBhxxBoag4mOB1LXAhnt1ySRDJ/MyII4MPffHJ8xP1OqfVQ2hg8gE2RebR31uRISJYkrTYPBGDDAc1zxyYA2ThAqWDn2P2v/R6Nqyhbk= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(10070799003)(23010399003)(376014)(18002099003)(22082099003)(56012099006)(6133799003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?0K8XUAkxO/BHtbKdrGK9J/41R9S/dC9dbrpi/xbLibnxkeHy6+mu8ARVGF6b?= =?us-ascii?Q?SyqhSfVby0hU2PH9/RO0iLAaBvvWOwWAbMhDvtXONZNrT+ZFWL6lkF775Idp?= =?us-ascii?Q?Un+MtGiNE496jwxFCNb/aCU1RQa8dkLz6RxF4PMlei24hPkeRZN5KBAeKbky?= =?us-ascii?Q?zWJQYPZ/Jy2w6GUhIgwWY+2+36g8PLenAAXwAN3L82MbpYXp3NyqeJdNIL/r?= =?us-ascii?Q?dQFr/GR+FQfr7meIu/2m6cmB4X/8CEXli+vH2nLqvkBDayR8UOVDASIjPg2Y?= =?us-ascii?Q?pXgsXBL8j72cRRUFlzQjYlb03qn+Id8UGbMy2pSGZeYuZSYPI0YGxKMrbA46?= =?us-ascii?Q?jPtpSy03HOIuRn/sKxN5gL3wDRdSHR8uaUUymOlRayd5F4BoxsK6211RwGf9?= =?us-ascii?Q?iVD9jdx1Wzp/1mm5SGd372cRndQhbZASJK2WSpnJ6oAAUO9049YG557Fve6i?= =?us-ascii?Q?YmMerG0QAoo7pYRk2r0REyrgJKL+uov4j3xkoBVcCZMwgl0Ci4T+D3VTOgD8?= =?us-ascii?Q?j3l9xW90Q1unQHXpPSiJt93riL19vmsfY/p240hgprvpc7Tsa/4yNKyDniNB?= =?us-ascii?Q?Wd8JA3m8JlSYFos9625nDVGvxbG10lMpoYkRH/1tb2br6Rb59wqCaH62O3yD?= =?us-ascii?Q?UPRuEyv4mktG6EDv0grarLdfVj/tdnTS3L1qJv8+NlLdkRfslIr9vWY/68d0?= =?us-ascii?Q?qGDhmUyejnq/6nppeLAyOG+jR2YUgDywVfc3gad9I1jqgozFcPdDZp0EhPui?= =?us-ascii?Q?CMSbpBYhgzYFT/qYfK3nnbTEV+fN3IwdtDR0XI9opsdY2BEGwKdySMMFtuoj?= =?us-ascii?Q?9Kofj62D1css7U3sFCupRmSozXnxtxxE+nH0u1UkqdVW2eNnmn39x8nBelDP?= =?us-ascii?Q?8Q0RnMS2+D25F1Hjduq90siyUcSraxmj3iZrNAT9wkGb4cmcOOY2l5Q6Ie71?= =?us-ascii?Q?F7uZrZLMJMfT/2biPw5TprBtnxb1M/1OlLKrm48IJ8byfGJnCDV1QPDfcwL2?= =?us-ascii?Q?gtgFwRQmZuwoYPscV/cXIrsHpojZGyzbnbAhDKh+yDWsCwWBWhxPgvE4sti5?= =?us-ascii?Q?8obaxQH/UfVljjaO4XaElWalM9+cTjAQbPzumeay9qjPnfY3cXRq/0aUNmh7?= =?us-ascii?Q?Pd2bN4fDKkiuEFSVtgC236WGyFB2aMTV1YcD60XusmYEwp9u9/+pWIDiiAIa?= =?us-ascii?Q?kp9aXX0PqqrPSZ/JQ3hLVmEH0HzvYkp8NbWPr0LfKkXDmRZL+RpQtYtg6KZT?= =?us-ascii?Q?jDLeCLUgcytF5phXG+etLidtiYwQlW+Kr7wNa76CIAeu5Qu0fDIkFZfTiEgH?= =?us-ascii?Q?i0YSPDvqKkJJao7l1nNbrWe29DnGCYC1wihmEOHPrbA69lsO1DJIjvQmwmdu?= =?us-ascii?Q?gMBsjEvoI3/3q9Z4f4NTAgqf8hbdGrCRWm+/DwE5gdhv10Yp8lO5xAV8h9y6?= =?us-ascii?Q?4mLkkugTx6IxAYedn8BChbHCucYETwEGqeFhAwpsgk2Q8v0FPVEuDq7Zxy7I?= =?us-ascii?Q?gDHiLzJZDBivsv87U9xx1SP6gllVTwrzk8h7aYAM1HU/00qPdvxYBPsE/m3A?= =?us-ascii?Q?DBEa23g+boeOTAb7H0cSFA7NMxQQsV9jPeo1R68br6ZQG9rU3tYTLoZNTSx6?= =?us-ascii?Q?ki4J4nvtL8tAmH/tBk0v+chu9PIIywrTAmMC3uIP4fObSz598yZgIJurQ1ax?= =?us-ascii?Q?cibTH6FGzsq/5DKskGfvwcJ87x8krNBJMPlu30Sp/0fgBCiDe0PqDRwK24m1?= =?us-ascii?Q?P48602Z5eGGDR4cs+Mj2sL9WJEdnmtYO/u3UQs9VQdBBa+Ay2rhXR/FvDLcj?= X-MS-Exchange-AntiSpam-MessageData-1: +aUwm8omcbcWKA== X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 67d66ad6-c34d-4545-e68f-08decdd77c26 X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2026 07:50:51.8491 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: UDb7khJSqZHo0BKAp0Gi+s5nEQwGe9yCGm1drIy78Ju0JvGpV2p4TGTjXMtG7SanS6pHQBL0S4aDIy+U/dm8wA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYYP286MB6155 X-purgate-ID: tlsNG-16d1c6/1781855456-B13FD853-7FFE8061/0/0 X-purgate-type: clean X-purgate-size: 2356 X-ZohoMail-DKIM: pass (identity @valinux.co.jp) X-ZM-MESSAGEID: 1781855487077158500 Content-Type: text/plain; charset="utf-8" Add the 'numa-node-id' property to the cpu nodes in the Device Tree passed to DomU. This information is retrieved from the virtual NUMA configuration in the xl domain configuration file. Signed-off-by: Hirokazu Takahashi --- tools/libs/light/libxl_arm.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c index 6eae33cdd2..4b0ed99229 100644 --- a/tools/libs/light/libxl_arm.c +++ b/tools/libs/light/libxl_arm.c @@ -571,7 +571,8 @@ static int make_chosen_node(libxl__gc *gc, void *fdt, b= ool ramdisk, return 0; } =20 -static int make_cpus_node(libxl__gc *gc, void *fdt, int nr_cpus, +static int make_cpus_node(libxl__gc *gc, void *fdt, + const libxl_domain_build_info *b_info, const struct arch_info *ainfo) { int res, i; @@ -586,7 +587,7 @@ static int make_cpus_node(libxl__gc *gc, void *fdt, int= nr_cpus, res =3D fdt_property_cell(fdt, "#size-cells", 0); if (res) return res; =20 - for (i =3D 0; i < nr_cpus; i++) { + for (i =3D 0; i < b_info->max_vcpus; i++) { const char *name; =20 mpidr_aff =3D libxl__compute_mpdir(i); @@ -607,6 +608,17 @@ static int make_cpus_node(libxl__gc *gc, void *fdt, in= t nr_cpus, res =3D fdt_property_regs(gc, fdt, 1, 0, 1, mpidr_aff); if (res) return res; =20 + if (b_info->num_vnuma_nodes) { + unsigned int vnode; + for (vnode =3D 0; vnode < b_info->num_vnuma_nodes; vnode++) { + if (libxl_bitmap_test(&b_info->vnuma_nodes[vnode].vcpus, i= )) { + res =3D fdt_property_u32(fdt, "numa-node-id", vnode); + if (res) return res; + break; + } + } + } + res =3D fdt_end_node(fdt); if (res) return res; } @@ -1390,7 +1402,7 @@ next_resize: =20 FDT( make_root_properties(gc, vers, fdt) ); FDT( make_chosen_node(gc, fdt, !!dom->modules[0].blob, state, info= ) ); - FDT( make_cpus_node(gc, fdt, info->max_vcpus, ainfo) ); + FDT( make_cpus_node(gc, fdt, info, ainfo) ); FDT( make_psci_node(gc, fdt) ); =20 FDT( make_memory_nodes(gc, fdt, info, dom) ); --=20 2.43.0 From nobody Thu Jul 23 22:29:24 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; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass(p=none dis=none) header.from=valinux.co.jp ARC-Seal: i=2; a=rsa-sha256; t=1781855488; cv=pass; d=zohomail.com; s=zohoarc; b=aSpzID7PuGbXqvkhGSh2vXIvO430lTnyc/auD9+1szj4tEGUF30vlEVwllw8EGXbN7cNLQTWwLmMD5y4RTpGXKLVM3T8b2RcMYaR+805qhmKTpO0KPpjqaggpewU/2CQOt87Q+obheofVSGrZ1Q8QiXzzI3+tMKWPUy/24zYxhw= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781855488; 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=QoRTB4nAx8eUAVhSZrdglv1mHv2RGcwGx69cLffgICI=; b=OxFRqoPprF+Wr31XMItqj4J1fGyj4yiskkl1W5d24f9undCPUenGfwPwxNBY1e35Hgca5hvLIdyWX0xBrDGyFYWD0bnQq+fy+3Ah16xBEBSS/C9su90z2ynhF6+cgm3XRIg6LNDeqb2u7nuVJpH1NtkzFr8Pbv0u45p/n6zq/+0= ARC-Authentication-Results: i=2; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1781855488255824.8801643262823; Fri, 19 Jun 2026 00:51:28 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1341804.1602179 (Exim 4.92) (envelope-from ) id 1waU0C-0002yB-PO; Fri, 19 Jun 2026 07:51:00 +0000 Received: by outflank-mailman (output) from mailman id 1341804.1602179; Fri, 19 Jun 2026 07: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 ) id 1waU0C-0002wI-FV; Fri, 19 Jun 2026 07:51:00 +0000 Received: by outflank-mailman (input) for mailman id 1341804; Fri, 19 Jun 2026 07:50:58 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waU0A-0002WB-MZ for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 07:50:58 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1waU0A-00Dy7y-3E for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 09:50:58 +0200 Received: from [10.42.69.6] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a34f4d0-e002-0a2a0a5209dd-0a2a4506dc90-38 for ; Fri, 19 Jun 2026 09:50:58 +0200 Received: from [52.101.125.91] (helo=TYVP286CU001.outbound.protection.outlook.com) by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.0) (envelope-from ) id 6a34f4de-b690-0a2a45060019-34657d5ba6ec-4 for ; Fri, 19 Jun 2026 09:50:57 +0200 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) by TYYP286MB6155.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:1c2::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.139.13; Fri, 19 Jun 2026 07:50:53 +0000 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0139.011; Fri, 19 Jun 2026 07:50:53 +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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wytN1ERZFUANjW8rzWsHPjSrth1IlIODeoEZrX5EFZD8sic9RtMtXxQDRAAN25mZ2LxmL/61iG9SNyIIUHM4w1McBfl7OQWRMmNvFDxOP/nknDFYbZtaNzvskbqohVQS92g1NqFb+uQcr4w//h0MGF0e1P4tPjzJd+uI7nzv05TdxieIdJPtOSy3VdLVRNh33+TrleTczKGcfa+x/znU/pPnHM/cZ/cGKI/sZ7JLRjdLGXFxZZtzmUcYhmGKGLtFnYyo//oaTXVWiAlKGj7T3BDCyNeWC+E+bEkkJYloW8I1pAhKtEtoAHUfQe58/VH51mVNAPTiohyqE7Q4vVEi/A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=QoRTB4nAx8eUAVhSZrdglv1mHv2RGcwGx69cLffgICI=; b=v70XzIb6jLls6LEcXC5xMilJ5eJUcpONzdfydvA+QnlBADJB74FqP22r0CLM+hnyV/1EHmj5U2TPXi3mFIyQAVQnHAGktZY2xGdYVpI0ayJAZrOD3sh0bUhxYoGq1fDqgZ6RCOACx2u1Ryu+JCnhHlDCEp1CQLo+g+60WCPteV+37t9AE6yhtSWkmqD4sYQzpI4ZyfJJ8aoaC1QVyp7QJpg3BMFhAImXSsh0KhEcuLQvg5dzNaYUDkgt3rDRG1gzaE07FJjPi3wx7cnxQgkqUpmknxJmMdO9L5dYRMWFXAEiFoTbjpvfafp53MWFefTKhAx1atLFoXx/zzD1pTJPsQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QoRTB4nAx8eUAVhSZrdglv1mHv2RGcwGx69cLffgICI=; b=Qe9reMSd16CKin+V3xXRrn4x2lUJKS7fL1UtDF71wHwyxD6NF84G5OMc7+eIE7Ks5cqNM69QLFYpflnci2MUI2WAS8MKXNAGkHxyEMOyot8actOCUtPN3ukYYcFf7H/0wdLIUkfQVZ/1zPGdHUfEePPR/nipt52UDXUIzvje5cE= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; From: Hirokazu Takahashi To: xen-devel@lists.xenproject.org Cc: Hirokazu Takahashi , Anthony PERARD , Juergen Gross Subject: [PATCH v3 21/22] tools/libxl: Create 'distance-map' node in DomU Device Tree Date: Fri, 19 Jun 2026 16:50:09 +0900 Message-ID: <20260619075011.377116-22-taka@valinux.co.jp> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260619075011.377116-1-taka@valinux.co.jp> References: <20260619075011.377116-1-taka@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP301CA0027.JPNP301.PROD.OUTLOOK.COM (2603:1096:400:381::9) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TYYP286MB6155:EE_ X-MS-Office365-Filtering-Correlation-Id: 47bec74d-8e98-4c37-1a60-08decdd77d29 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|10070799003|23010399003|376014|18002099003|22082099003|56012099006|6133799003; X-Microsoft-Antispam-Message-Info: tL9ai5IZ2WiCZ+ZMbdi5aX/hWil5lJvGStUw01fmPicWHAX8AxZEe1QlBy3564iq46XrMlDCoQ6g5HLiMUzwz7mQ0lcGmKQq82X3pSh1wEziDuzHgF28W3DTIwIvWvb6Ye9iST+65Nf+0uWxuxJq2rSyr0Vw9OKBMSSy3l60EHMw3T3iu+NcE6wXlX+NzGa60KmzqQpi57al2seiC3fUCNZ9PFsnS/GPkym5pUzA9xhUoarOWsWoY3ntS1oQYFzotoynT7aTlcVZD1/giO+NG5g9nJQ9SqHnh2xlBRyYZIRfpH8913CHY0gq208RMB71rPF+9WgHW7v2v/fhLKhVKjpaSQpkrdbVyOR4nInHxuA/8O6dRKGF2SvfoVQtvS3QWb6WR8RkerMjudTsvMke6jCF6FlWlB9zmdgY89536PqXBtZJajIqC1TVExqeD08U0BS9tt1yzUhXrovgD+AwzGU3pV+3UQiaFAySKyc5go7uLiArG7wi5PQdKKMhUjIFdiKwK9jDPkb5ybrVQINtuXJSrLD4Jn0y+jTSufEl08NR+42veWbrFtD2TZptyomIeiaWvluw0Xs0e5y+6eJvYAvJSSW23aw05YXWh1ogm95eWuGqX+tkVou+K0pNIp5T4Cu9r0QFylLkmWBlgrItM+ueG97MDSq6vsCpwjTekbM= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(10070799003)(23010399003)(376014)(18002099003)(22082099003)(56012099006)(6133799003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?v/S+BI0Mo9dkqsZTvbo191jCB/KURz3QmybqDzYtJ28gSOh3Jp/CaXm6t1nC?= =?us-ascii?Q?OOKtHsc3khREL62Fj2VkmjPq+JiGAiUazgi+suqMHg6sWovF/Xn27QtceFsy?= =?us-ascii?Q?tHD7U8eHzQ8ULKlv9i783y/zr2cs1EdJ0TaI5Z123dp+LMp4b75UE4AdWRV7?= =?us-ascii?Q?dgi6Ll/fD4Riv25zQPpUUS2itlcIsmBMl3JzxNeIlmdjiUW7JrZZzCIfJ1GP?= =?us-ascii?Q?Ss460qPZo+nxeajSMmj5glMdF898A5texLvibYsTbrUGTaGHt38Ntqh2q7jw?= =?us-ascii?Q?9Hq2RklG5gXTYfJPBCGYonNiaSKdh6MU4zupFjLAiRgEdWreQKdE4V1+5aLG?= =?us-ascii?Q?iYLEeNZ8x3Z4MP/+A7i6f7s9H26G75bnudzAFAgdfrhz6WZ8s+yzjj4cFKTP?= =?us-ascii?Q?f9TEddmrU/Kr2nCIe2+m+2EZeU+1r2XvRgvAl0HGu7MvPcoTMyqPpvuWi4rS?= =?us-ascii?Q?gC0RUTLQk3/GJDyHbywrnxsjxvsaCG0ll10H8aSVeQml9zzwC5P30hkBgeVu?= =?us-ascii?Q?1vgZI1IxO6gT+nqRy5In5Vw7N1xoNlh0O/P1kVYyED1m01yagDp5IWPJKSw/?= =?us-ascii?Q?xasUMw3Dlua2r2EcwkebBvftlaKxMaVhRmm9L7Cq1u/CjNJ8K7ztuhgSKoq+?= =?us-ascii?Q?pORf2eeqcvkFy4BRAyyBdTIQH0ClizlOUdqWBY/0dOlls0HooVl1Ch3D8bFc?= =?us-ascii?Q?n3w+gYp/JQHxPoVtSj0goYGxToWz7gdepVo5uPT/oBhXeVvSg24yu4AbAQYh?= =?us-ascii?Q?+XTBs00G1DZQt8GVUS+eTMKYd8GWUDTH/JhbjHNGFCwErEst3Z7+XlutX1Rl?= =?us-ascii?Q?r3eiQshPujR/p4hbr470HOlGF7myuF2Hq+qy9e1Sge9QWake5aLGQx2YmY2B?= =?us-ascii?Q?ddruBkXVGm85G0a2bp7wshgWQVQaI8FQz2O7nj2/y4XNatHe35+5LFB/pwME?= =?us-ascii?Q?Po5xwqgnDj2YO/XNb24i2Y86BStU6xm6Nc+8UxcbFsj660CiKIwsA1OPtkq9?= =?us-ascii?Q?oNYnf8tLKK7IJjzbdVPlZvltdWHUVnUimlItKs5utD0wfMzTJBriXaoGiDKf?= =?us-ascii?Q?ZBaoi3fy227raQJ5VBsh5x5uUUX79WxFU0uNMajDBIoxxr+UkoxrWmI64wEg?= =?us-ascii?Q?4POaeRxcLSq6X+ayqz8SiaVn/jHLqhmYkIwiqvXo2aZCRojfOglIqmys+0Yi?= =?us-ascii?Q?/D4LmK4+BCZqnW6F+GG/OdbJvCskZAEatoctu7DjS/ELeEo0Lhuc/M1417Rw?= =?us-ascii?Q?ALFH3/ICJfuT3Pa3Epxd08cOABxRtAzn0qnI4fzKXr7gDzJwq8Dcqs8/9tfd?= =?us-ascii?Q?qtZiLR4OHF+hA8/im+J8GdAJ4vI3VKePqxKCkbLeocoYJ1bedX1iflGxo0vD?= =?us-ascii?Q?Eiya7drvnA2Msfh2lheKZQYfMT0DUa3yydbjfGJtCU8CvHaKk5UC+kMvUgAE?= =?us-ascii?Q?as6abqIKupCPkJCYud31OMuFC7RCcQXl3wWpzz+qKPNa5hApBDRYYoYVcIYj?= =?us-ascii?Q?ZPnmMtJ2ORZ5NENbsXp8J4ICsl3prjTqc0J1CjjOBww6DUfhBMFjrkUSNE0+?= =?us-ascii?Q?eBhUtnWzLry5T+jS+UeWkBomrz/ZljUzcrpy4HJhLUh91SROjzkb19rlHr7W?= =?us-ascii?Q?CnA/fY4zRqmnpd7WhHPllVg+pc2PlHf0OUbhID+mUzr6jPSOw3tLabPRgCry?= =?us-ascii?Q?vm1qWSzHuiioGFC3iqBTg6qMU1Rp+NAR01mP/Bp+mzrGIJK+mF4chky7/isv?= =?us-ascii?Q?iP8u7bfamUSPInJjfKnQPySA1KQJeBmEYCXkHqI7Yv6YYRnoZy/hHA7DCKvF?= X-MS-Exchange-AntiSpam-MessageData-1: DLx1eW1fFzHeiA== X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 47bec74d-8e98-4c37-1a60-08decdd77d29 X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2026 07:50:53.5491 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: zWdZHYeWvKgjW0/IuQ0DGa1onXcSRHod4gvnyQbvpGlXg70B0opHctUZC56HrhrqKsbo7ETaxSaiIqUND2BE2A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYYP286MB6155 X-purgate-ID: tlsNG-16d1c6/1781855458-3BBE1853-7B28EEDF/0/0 X-purgate-type: clean X-purgate-size: 2120 X-ZohoMail-DKIM: pass (identity @valinux.co.jp) X-ZM-MESSAGEID: 1781855489058158500 Content-Type: text/plain; charset="utf-8" Create the 'distance-map' node in the Device Tree passed to DomU. This information is retrieved from the virtual NUMA configuration in the xl domain configuration file. Signed-off-by: Hirokazu Takahashi --- tools/libs/light/libxl_arm.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c index 4b0ed99229..466bee95ad 100644 --- a/tools/libs/light/libxl_arm.c +++ b/tools/libs/light/libxl_arm.c @@ -738,6 +738,39 @@ static int make_memory_nodes(libxl__gc *gc, void *fdt, return 0; } =20 +static int make_numa_distance_map(libxl__gc *gc, void *fdt, + const libxl_domain_build_info *b_info) +{ + int i, j; + uint32_t *matrix; + int nr_nodes =3D b_info->num_vnuma_nodes; + int idx =3D 0; + int res; + + if (nr_nodes =3D=3D 0) return 0; + + res =3D fdt_begin_node(fdt, "distance-map"); + if (res) return res; + + res =3D fdt_property_string(fdt, "compatible", "numa-distance-map-v1"); + if (res) return res; + + matrix =3D libxl__malloc(gc, sizeof(uint32_t) * nr_nodes * nr_nodes * = 3); + + for (i =3D 0; i < nr_nodes; i++) { + for (j =3D 0; j < nr_nodes; j++) { + matrix[idx++] =3D cpu_to_fdt32(i); + matrix[idx++] =3D cpu_to_fdt32(j); + matrix[idx++] =3D cpu_to_fdt32(b_info->vnuma_nodes[i].distance= s[j]); + } + } + + res =3D fdt_property(fdt, "distance-matrix", matrix, sizeof(uint32_t) = * idx); + if (res) return res; + + return fdt_end_node(fdt); +} + static int make_gicv2_node(libxl__gc *gc, void *fdt, uint64_t gicd_base, uint64_t gicd_size, uint64_t gicc_base, uint64_t gicc_size) @@ -1407,6 +1440,8 @@ next_resize: =20 FDT( make_memory_nodes(gc, fdt, info, dom) ); =20 + FDT( make_numa_distance_map(gc, fdt, info) ); + switch (info->arch_arm.gic_version) { case LIBXL_GIC_VERSION_V2: FDT( make_gicv2_node(gc, fdt, --=20 2.43.0 From nobody Thu Jul 23 22:29:24 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; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass(p=none dis=none) header.from=valinux.co.jp ARC-Seal: i=2; a=rsa-sha256; t=1781855500; cv=pass; d=zohomail.com; s=zohoarc; b=i3HJrn9WZz0J4AV9xe3gy1c278rOAC/Nd39nAbCr9S9y5HvM++6RvYtlxr0iunuEc9+7s0/drVCyO9MraSdK+EbQyFdxgaExouNPq07e/pke4r74kuGdTRWK7BkQSv0Q2wt6it3KTt+ajDm9AKUfIyUKXh3WFDWt0flitz/4Rs4= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781855500; 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=Y2uO4CWFN3sk+OKUBgM2NipSp0voK+WIqimBi6qcm4A=; b=hqGE6TWdKuosqgHTpj9wjtO975eHac4W+B32LvpiO13lsC4rY91GRwj+bDOrVBJEj+1Q0Epuh14Gh/hKQKIwARkja5tgbzK3gg3u6gc8svUdE3Qx0REj+UyoOkMRm219zN5gp4EE+un8Kj0oeIQ1lzKBeMMFwJA7HpjctxAI7zQ= ARC-Authentication-Results: i=2; 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=pass (i=1 dmarc=pass fromdomain=valinux.co.jp); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1781855500248920.8070548507272; Fri, 19 Jun 2026 00:51:40 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1341807.1602185 (Exim 4.92) (envelope-from ) id 1waU0E-00038t-6j; Fri, 19 Jun 2026 07:51:02 +0000 Received: by outflank-mailman (output) from mailman id 1341807.1602185; Fri, 19 Jun 2026 07: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 ) id 1waU0D-000369-Ay; Fri, 19 Jun 2026 07:51:01 +0000 Received: by outflank-mailman (input) for mailman id 1341807; Fri, 19 Jun 2026 07:50:59 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1waU0B-0002kI-Pe for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 07:50:59 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1waU0B-00Dy7y-61 for xen-devel@lists.xenproject.org; Fri, 19 Jun 2026 09:50:59 +0200 Received: from [10.42.69.6] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a34f4d0-e002-0a2a0a5209dd-0a2a4506dc90-42 for ; Fri, 19 Jun 2026 09:50:59 +0200 Received: from [52.101.125.91] (helo=TYVP286CU001.outbound.protection.outlook.com) by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.0) (envelope-from ) id 6a34f4de-b690-0a2a45060019-34657d5ba6ec-5 for ; Fri, 19 Jun 2026 09:50:58 +0200 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) by TYYP286MB6155.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:1c2::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.139.13; Fri, 19 Jun 2026 07:50:55 +0000 Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0139.011; Fri, 19 Jun 2026 07:50:55 +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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=C8c8wyeC7ZcppBS0A3hkTYpajo8E2NiJVi1Q/JTkX8B2PfVeH+wnhaXJyXtiF75P5xwAt3PLLpoU3Ls/igCZqeYHjCJKvf032nsHm4YUyRySJL4LqhGJ+Hc0OhJm+56bIiyWds8JN7R0AhuSdWWBIoqvpmev1WIvjfTiHKZMXKn2ksEF675yPN/XitOSF1P0QQTJp8waPdfGhxADAOnEY+zJf+lQ5n3LmZj1TomBJ6WoN4SMe/JgeT9KGXcjyzJBzgAFidvEEtF+/9+HcnYHelil+lxETqA1vmtHy6XXIcNYBHMk9gpUqFSqQZ0gxCsPx9rw0Pynare7P+bt0TaREA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Y2uO4CWFN3sk+OKUBgM2NipSp0voK+WIqimBi6qcm4A=; b=mvhHa6ccb3TnhFzGq9K5s04MXt+Z//9wdAJjjgLQdbo7RJQ5Szjf4bYK3AP+lYpSyi91/nIONC6si6BR3teg18bJU8g9ycATQwQtQG807LVpP7KA29IrFsk8N6nFbPD0xH//7a50ud+D//pR9UJl0W40V9sGwwYo6jA6EW+OLBuWs7rd5KMbg1jzp3Ibmm155B0XbtfTZkUxFMzGL4rPMk14dY6PziagqmN4BoVnYKgY3ATu5m+Ky3i7rkhnCd4LmptOFJFxUXD84j9Yph+NqPojGjTRr59mA+qNO3yxOnz5TjWhx277D2kYwoVqgzyI8o3AXrCdakvjsiL6Il2xlA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Y2uO4CWFN3sk+OKUBgM2NipSp0voK+WIqimBi6qcm4A=; b=GgtkNk+ek8ITO5qac5LjSUDo/Aq/zz+tYdus5/5HpmFSt/I1ve9kmezycR9KysVDRF4rCTO6plKw41Kjzq2gka9HkzPpjRa/vC2V+Wbj3WVTUxEkdXjBaBzsjG2lnwrGws4kEB4ZGEID0VHsohezeVF4dnP0N039UDhheq6wGrA= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; From: Hirokazu Takahashi To: xen-devel@lists.xenproject.org Cc: Hirokazu Takahashi , Andrew Cooper , Anthony PERARD , Michal Orzel , Jan Beulich , Julien Grall , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Stefano Stabellini Subject: [PATCH v3 22/22] xen/arm: Support numa and dom0_nodes boot options Date: Fri, 19 Jun 2026 16:50:10 +0900 Message-ID: <20260619075011.377116-23-taka@valinux.co.jp> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260619075011.377116-1-taka@valinux.co.jp> References: <20260619075011.377116-1-taka@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP301CA0026.JPNP301.PROD.OUTLOOK.COM (2603:1096:400:381::10) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TYYP286MB6155:EE_ X-MS-Office365-Filtering-Correlation-Id: bcf4e9e1-ef19-43a2-a58f-08decdd77e6d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|10070799003|23010399003|376014|3023799007|18002099003|22082099003|56012099006; X-Microsoft-Antispam-Message-Info: C09t+UlrxXZgNnSOsxEPF0t/AllcRkMTwuKZHRLHxLtTuNBMgbVZG9XAxmGlIgwP+BEirLA5+pNeX//N8D/Le54jLFzSSmMi7ZdyBaSnFPwZK1ZoS9uQpu7dwcgWJxNvKCzJRsQcgnCmzASB2KD+LD2VioDNl2PSP9UgE7nRrpML5IzG1/y6Ufg9XiiewyaGe4wdCGb8qLbeGXVp/x0Dl0cB/f5jq2M+8+gl1RxUDEIDCR0yn8Cy1CGYLJ0bIzuHLSMTW0WSYh5tSPJ/+bBnMNadh0nLrFm1kL95VMVgxHDDrm40vMOZbs0AspM9pI0phNfM7Ozjvq8V6HIeUeLJPHklOJi21FhzrHVrnVVdC4HVylhk2uw5pIfKTjPv35Wb0hPbeCjXyaZKdWBGdpJGhk39zKXGPdB325MSSCkunwTKBTaBSbDmxIXQMPITNzeGpUfnLnK1N2mxBhEINI45wG0I7Q9PU2NaP4t90otw5kyCYSoUXxBOuNCd3mdS9ZSFAy9keTiHt87jKXSbSFiNPUGu7TRn1LZG4qHMB1xiiLPmEGm1jaaHKzSnDeQFPVDbp3IJRKv3/KJcqsw4MsEOAtX5Fakw+R1edHtx8Iezh4K0HwmADq7VnGcszATidBTlgjYmjZc8k5aqqOloy7mAaofSPqd2P5VrJ3XHpg3R5IE= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(10070799003)(23010399003)(376014)(3023799007)(18002099003)(22082099003)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?tfs9ytiYob4Zz9mzEMQ1gtb3ilybgU00zq768cT/qPe/h/YpR8qX/aaoJlpP?= =?us-ascii?Q?CNKsMLEQHULEALOQHBUL0qDf0WFHmO4WPQOFTnMfXiQHsYTNjZtxwcBhs8z4?= =?us-ascii?Q?HKcoOueP6xmt+kN9SmwyctESMIJne9hDHFNK9Ue6g83lHW493vc2CJd9NU18?= =?us-ascii?Q?pi+k7Fqg/gRo9Z0rTebd6aT4zyyWpCj/g2iBgarffPemv+kY8/4n4+01Xl1t?= =?us-ascii?Q?zdLHKigzafGTtvyVBQuwOhqH/juMCaBibHhGw83tdezgT3Ox0bv/5SkNURMc?= =?us-ascii?Q?irLEXnj2cTnokbRNiIKb7Je0w2j+xUlMCL9sl+dfbH0UJ5cJ4fQDiWVbLoMD?= =?us-ascii?Q?LINXiCF5vx5vWMHVsBWy8tSnsNe1sDAvFnZ3gFNmJCd3hFTzUSmOf+iPf8zs?= =?us-ascii?Q?g9c2faxhyJdPQDYVdqZTzrzTiU1vW0U+fAzUfkU4dvSLuwam+DwqCTXn5DHO?= =?us-ascii?Q?3rxlCZC32WLHUeG4ikr9+wkDnX0REnFTkclIGDoPERqBG0G6hMy5LcfoGpRk?= =?us-ascii?Q?XfM68RIOwS5L5kMF4lyeBYhGpvgG3esaE3Dg75EM0PHsKo63+XuGGAVuEFle?= =?us-ascii?Q?PcH+6rHGgz4d212gX+bqxgNa/ombxYU32R4XZbh5A68AtWKwCOBeZ3q2y4vK?= =?us-ascii?Q?f2uUTjeO1myRZ2IgOHe5Ufv7CMPFNtTG3x5pS+Ehdbp/1sCiAWxxphk1A5ha?= =?us-ascii?Q?SZvhtAqfL0kBh+UZ7qQxOHX5o2Uc8YfzlI6DaWPM7vDUacmPaVPHDZdhwnxZ?= =?us-ascii?Q?mqDla6YMHb3ZPSgJD1GjREE54bwM320QJOioJN1qMQGK8WK8YODhv5nIg3P/?= =?us-ascii?Q?T2dEPUHr6BOYiIfUSJVntUrLchO5QTbaXjFTgHukocFbvCM0OkF3SaDlJ7VJ?= =?us-ascii?Q?7zaAQxCMk+XHPqloIMfWBZ0PdDm1TFD/4fXbNtwijzGEB6o8RCD5VyH0F+dn?= =?us-ascii?Q?FX2eWFS0bV1Vr12w10z42owcQtbCpHmtFc5+w7M4VpfWthmcQl41m+m0w83O?= =?us-ascii?Q?KHB3a/FQdwWMRUxdNEJMMkunQVQb3E/AlP24iNfypi+x+Bddi8QVeHHkCHGO?= =?us-ascii?Q?+7jzh+Bjpn80/XBgl86jXD/q9t75Qz6SdWjagyYGdcmPXNPsqkF/tb/+d5FZ?= =?us-ascii?Q?sjrjww3q935nGZXxDFtRm9tGMZ6fWBUzT8AbvQFZV9SbTZaiFmjBCYZqIEcU?= =?us-ascii?Q?GI9+61fb3OT0STe0CsWmb9ifWmprJokXrndoW2CzhT5BgJt+NZ761Wu1UjCT?= =?us-ascii?Q?XHihFNvWf4nceHKsjKDClLZfZ/+eHCL8XyVaC7dHRKej4oyULOgSxwK0Ryu/?= =?us-ascii?Q?oTii4TQoEJcdrgLXJkFGhtCkH1sAqeHbcJUpgAZL31m7HRm1DVF7B7pqrPmN?= =?us-ascii?Q?WcdOgN4AoBmZt8eUljd5JF4uir3EygzVn8jQULYPDRx0RnMYvES5jWcpObvZ?= =?us-ascii?Q?KNQUXnvdCFgoJHRgP1rVoAVdupcGTniR2SX+lx//oSJ8P7qChVYudkIQZhcD?= =?us-ascii?Q?4sGFmM30MmaNXu+Dbopk1NW4liV5/gDOmgWkN33wN6DG6cwAYLQc4SUMFSUe?= =?us-ascii?Q?FskITqVtBjbKUophSGIzMIM+oK9v4Ei3Y0yoGCQ00yNznjuk2ltOW5aIEXKP?= =?us-ascii?Q?5/h4MrxIB+GRKTFOamkypEWuseIFYM6te8LmTurev4rWaPtREewZ/b090MJ+?= =?us-ascii?Q?T5v5JB4UBX1AO/P6ReR/kcU+QDJl9ShuRh0WtuJYSzZmuUiCym4awHe+qlnk?= =?us-ascii?Q?pczbALI2diCfAbRLZjp3ZWK5ZhiORsn/OJjhHLftvq6NBhn01VAOrSps3vny?= X-MS-Exchange-AntiSpam-MessageData-1: ubWYwCNSQRaOUg== X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: bcf4e9e1-ef19-43a2-a58f-08decdd77e6d X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2026 07:50:55.6950 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 6sVeGywfWEbwzIUFjwjTIV/w7me1QZJZzPiI0APw6TvvsgMyhf5UsCJvJ1WRimKeoMblrDxlK9F5oICfqSthrA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYYP286MB6155 X-purgate-ID: tlsNG-16d1c6/1781855459-B37E3853-0963C665/0/0 X-purgate-type: clean X-purgate-size: 1768 X-ZohoMail-DKIM: pass (identity @valinux.co.jp) X-ZM-MESSAGEID: 1781855501323158500 Content-Type: text/plain; charset="utf-8" The numa_nodes command line option is now supported on ARM Xen. Its usage is almost identical to x86 Xen. The key difference is that while x86 uses ACPI PXM values to specify nodes, ARM uses the values defined in the device tree (numa-node-id). Signed-off-by: Hirokazu Takahashi --- docs/misc/xen-command-line.pandoc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line= .pandoc index 1c711fa980..bb23f1fb15 100644 --- a/docs/misc/xen-command-line.pandoc +++ b/docs/misc/xen-command-line.pandoc @@ -1050,7 +1050,7 @@ Practices](https://wiki.xen.org/wiki/Xen_Best_Practic= es#Xen_dom0_dedicated_memor =20 This option doesn't have effect if pv-shim mode is enabled. =20 -### dom0_nodes (x86) +### dom0_nodes (x86, arm) =20 > `=3D List of [ | relaxed | strict ]` =20 @@ -1059,8 +1059,9 @@ This option doesn't have effect if pv-shim mode is en= abled. Specify the NUMA nodes to place Dom0 on. Defaults for vCPU-s created and memory assigned to Dom0 will be adjusted to match the node restrictions set up here. Note that the values to be specified here are -ACPI PXM ones, not Xen internal node numbers. `relaxed` sets up vCPU -affinities to prefer but be not limited to the specified node(s). +ACPI PXM ones, not Xen internal node numbers, or node IDs in the device +tree. `relaxed` sets up vCPU affinities to prefer but be not limited to +the specified node(s). =20 ### dom0_vcpus_pin > `=3D ` @@ -2018,7 +2019,7 @@ This option is ignored in **pv-shim** mode. ### nr_irqs (x86) > `=3D ` =20 -### numa (x86) +### numa (x86, arm) > `=3D on | off | fake=3D | noacpi` =20 > Default: `on` --=20 2.43.0