From nobody Fri Oct 31 03:48:27 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=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=1750518758; cv=pass; d=zohomail.com; s=zohoarc; b=n11SzcEUEHDs3GMF2MfcAV8cmRBeHOt277D+DWOoUsBEph5G/c/pGdtvBy6ELCFP9zwmk0rBGmcGXLnymTssKpbp8CUiQL3j4DAbf6Hdfd9ogCjoZnvTRhFpvRszI46d1wba2aSE11UUJT7VgSk5nE8QffXJt6oKsE5vbDACXg0= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1750518758; 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=bk8C0BSlJhA6mVNaKbWnyvdYNwVgYQD2+aecmXqoNGU=; b=QRIUYQbkNtVhycBHCwGjTLuhdSG0GBTxbxjZmzuHeulmd3ovN3gUVADL0uZv4OCLWI+Q8HfnXuCoNjlySEQTl6Zgf8UxBztP/SlyR8z6mCwHt1Y9m+jTjicpfoTNIC8R3srtKQT937TjSfujT+xUs9o/iiHRjTmS2FJ5rRhQ2YQ= 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 1750518758561985.9059870503884; Sat, 21 Jun 2025 08:12:38 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1021611.1397529 (Exim 4.92) (envelope-from ) id 1uSztD-0002I7-RT; Sat, 21 Jun 2025 15:12:19 +0000 Received: by outflank-mailman (output) from mailman id 1021611.1397529; Sat, 21 Jun 2025 15:12:19 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1uSztD-0002I0-OZ; Sat, 21 Jun 2025 15:12:19 +0000 Received: by outflank-mailman (input) for mailman id 1021611; Sat, 21 Jun 2025 15:12:18 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1uSztC-0002Hn-3m for xen-devel@lists.xenproject.org; Sat, 21 Jun 2025 15:12:18 +0000 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazlp170100001.outbound.protection.outlook.com [2a01:111:f403:c406::1]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 1bd21c5f-4eb2-11f0-a30e-13f23c93f187; Sat, 21 Jun 2025 17:12:14 +0200 (CEST) Received: from OS3P286MB0979.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:10d::7) by TYWP286MB3033.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2fd::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8857.22; Sat, 21 Jun 2025 15:12:07 +0000 Received: from OS3P286MB0979.JPNP286.PROD.OUTLOOK.COM ([fe80::80f1:db56:4a11:3f7a]) by OS3P286MB0979.JPNP286.PROD.OUTLOOK.COM ([fe80::80f1:db56:4a11:3f7a%5]) with mapi id 15.20.8857.022; Sat, 21 Jun 2025 15:12:07 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 1bd21c5f-4eb2-11f0-a30e-13f23c93f187 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=KguUZnrCkJU2Pmyn5JFZUL7C8Z6hQ59F0DPy+psbGRWSX+d9AOXcBc/DTMGwiEZZN3Q0T1qT5lOgt4nfDUdWREnTbyODX/9LGy5oAOEUR95tvTFv5SjMcEF0A4dntEhfVMYYIFXX1JrNqbxe8ihnODqdaf59Z6G28bF1/IgzjAMDRRkr/TV+6qZkaeRtNB7trJA10oXcLBPWc2NJLfzrWF+6Orv3avgPN70VqZaDIiqog/v1QZ08i/G01wgy1pRh80iQuPsnfGUOCx9IxrUDLXRSR04z6rsaYaCbPCwhDr+BnUKCvAuDmMGNwfyydqN2f6+jj2lQsOsZ5Am7vyzMSQ== 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=bk8C0BSlJhA6mVNaKbWnyvdYNwVgYQD2+aecmXqoNGU=; b=mMY8G9Jf6rDourwNJG6ROT4/HqOC9rcWnFLplOartW3HwJWaNGTYPOljddJNMOhAnp8QSuA/p6gyvhxlWXs6oxDo/cXQcNZsnVOuHRK3cHXU8wJJhEhSvDiniyNrQLEw06GGOD9xXsdcsUSjkpHnnt76RcPF2Lt6/LYE4j4ZiyKHyWP2+DmUyaTJZiWehiXunAO3SJAfGmUEyAxWc15qqXdAtcyy3thGFPzN/xbTuUrqm8dwOJVQf3SzxUyv7Ix+sN4m1yPrcP3ObJbYzFgsTlbHIrKt30jc90vgaiGX9pCZC2YL0n2RNyw67GtEO+N5jd+KiDTQtS9J++IstAIfqA== 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=bk8C0BSlJhA6mVNaKbWnyvdYNwVgYQD2+aecmXqoNGU=; b=b7EK1mj2lJ2IMoydMn0UArjGmac3utkNmla9wyHJ/KZ1Jkj/MIClokLelqW1p9w9E06mURUnhCZF7d9VQtAF/M0aqRdrJIzB0YZkoWqdFuKVLgh/d+ytJLVSUZGXXxiJXkCWQfsxULLETnByiq5YA90SIKEONVzvveMQMsKq4QI= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; From: Koichiro Den To: xen-devel@lists.xenproject.org Cc: Koichiro Den , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , Volodymyr Babchuk Subject: [RFC PATCH 1/4] xen/arm: Add wrapper find_unused_regions Date: Sun, 22 Jun 2025 00:11:58 +0900 Message-ID: <20250621151201.896719-2-den@valinux.co.jp> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250621151201.896719-1-den@valinux.co.jp> References: <20250621151201.896719-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP286CA0262.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:455::9) To OS3P286MB0979.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:10d::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS3P286MB0979:EE_|TYWP286MB3033:EE_ X-MS-Office365-Filtering-Correlation-Id: 598004ac-2d1b-4ce9-4c2b-08ddb0d5fcf5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|10070799003; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?hYZa2VR8eggyGubTiP/rXdN+CJrZ8x0nEFAJ/KrSlE7Mg9fSJiilaxw6+E0g?= =?us-ascii?Q?L9CE7tx/YkA77cjBHTL5hZrM7DxSoJ1aY/bSkxcKH7fJAfyb9GGHsSyahF4t?= =?us-ascii?Q?1dPQ0nqtDSXqZu/GXkNGhDGONbO0PHUcu/cCDzaw7WRNTyAb4fR1LTSCAboI?= =?us-ascii?Q?YalyutWM3a70zELrJ7JeR+uctUBPf94oD62+2NpulghGZNTcmAbsYzBAGwzC?= =?us-ascii?Q?aEJ4+VJKpLGcAZ2R297hHvigq++E+WRxddmQTiJKM6hB64vcot5+7KL7XuxH?= =?us-ascii?Q?WFfzZ7DC003y92dcjZKpP032qFg6ZG2yeIJx6qHLMrnrZl6L5tl4QCW+u6JD?= =?us-ascii?Q?4WCbVq0SKzmGIocao/s/ocxZdlZN0ODVsmC99c1zMT4EioFpJnReyvPTSbCy?= =?us-ascii?Q?rMfX2ztrsnJtEnY1xHsx7z6TpyRaai/GQ6Ttr7mgDYmrYO7RXXJNYiqC5YIt?= =?us-ascii?Q?VCY4XSpOJL9RGQkRx69IWvP2N+eIP2eD4F4FuqlBDFiJEC4fW8fGEiALiCAb?= =?us-ascii?Q?X/M3PyRdKDHGfqJGHyY00JelZMYJ9wcdju3EdNoYCP6ja2R3vqiaU9GG5bQv?= =?us-ascii?Q?0kMDwqYz29gmq+GGgykGtr62yQhdSx3HB8fj3s0aivssIeTwrULveSuSTrXa?= =?us-ascii?Q?hlITB9nqP5c3Sfv3YAhbDa5U6SUA0QzsKBYTKzjRFlHgBcFY8Lr0SXQ0IjgW?= =?us-ascii?Q?hb3d2v6o8Wb4fkhUpWF0H//Y9ChgzRlvmJ0aAJ10pVAbZSYcv7RZL8RHmtKO?= =?us-ascii?Q?uFunlxj7wWqTg/GrvcbzZQAuHUj1eNj1by4MHNrpj5CFlRySL/WXMDm0rx8y?= =?us-ascii?Q?vISLVHJEqGi5jtgsYPliRS2f/3p8C/21tnP/d8fGjx+NkOsc3IFs1yJX+k5x?= =?us-ascii?Q?vPcSFLdf69OycAci/aV9SIT4ZHDlc4pA6XW4MAAoJ7koi3hbCROr5ZqFxtEP?= =?us-ascii?Q?7Ky8hGRtQtqQaQ8egqVIosqCGxnY9ZPfcuAtt+ehEtKDSfVB28Qqi0m0OUys?= =?us-ascii?Q?9OuFtdbMan+0ATMzf6SLQBAzC3XHqqvzZcMfgz2n0cSlu47Kn8OK8irzJztD?= =?us-ascii?Q?W0+F+cxq8/fQ1AguGn5jY3yKMfP6SkcMl8i2h6rf7UyOMOvBTxgk6bWB+jgS?= =?us-ascii?Q?W8ko5tqavAdM4uiWuHJV25VWK2R3s6RH/sGuFd0lz2iwJNccDsFq7yzpcx80?= =?us-ascii?Q?BM5yaUVTlodajFc+FZQLj2Z67ZzZtCiuVK/Jws+t5ZpcJAFuRYWmEBA9T8pl?= =?us-ascii?Q?cAJELZTZuVCyZbb4QdGPJ1WtmoBX7I87EG+sVV6TgFwilhU+9LBqpoq/Pbry?= =?us-ascii?Q?XRiKE5DEaExXwJ9QgsiDfNJNWAq4FUtYAxkVIrqWgvC1Bjxw1POQFtknKCRW?= =?us-ascii?Q?uGXjudAX4bTY8B4O2gBrIJBstLkLnlfiOv7Gv0RPJVbBd2exFV8eKnHiLKqS?= =?us-ascii?Q?zhR5WG4SKCU=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS3P286MB0979.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(10070799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?AIw95+sX2Yv8cUnz0TPhicMCk4M80OHcZSOXCk+Q+655HTQk0lO3QOqmzK5Z?= =?us-ascii?Q?C4Rv6j8bg8KgyMldIXIjlwzN28u9isWlyVwIFGdGrMfKaz5iVWWpwcuyCUvy?= =?us-ascii?Q?C32GWW240T0YvRD518gHwqjy3S/6+lhbL/AJtUNDKJU5h7k1uucU6lVbbOh3?= =?us-ascii?Q?ujFVwbQBMnSCFe/vS0fBYbK94joTDD9NfFi1FmnHSouVtKTfg3pNaS9RvMSw?= =?us-ascii?Q?nk9BJaF6VCRFV09hWVjSQ0nYdLLaoogSRc/K7cJh4aqNPUh87ndK7UHT82M7?= =?us-ascii?Q?E13H4xYNEfEaH2cyD4U99visALQke9Jf0UhyY6KwvNW3q1yT/4rfFwxA6UgE?= =?us-ascii?Q?anRus1L1ny88epBYhDbfSdanvtX5rVecsTu6Nl02WZAnIMvE2M5jYoYpRB8S?= =?us-ascii?Q?sBE2Mhbz0iddrATacJHnExdEzIxLRFqJOXdlnlH7FN9WohGtb42e0AxlO0cb?= =?us-ascii?Q?dkS7Q7llnZk1iAifFz18GIcvPOzmkWuBkLBJlEToj1sQRvevKoQgDFVuMCGw?= =?us-ascii?Q?rD7A7Rf3mzSjIRwjiO2l5FA4/GMfmpMacF5AxB71wurDR65uVuOBs8VOKvEk?= =?us-ascii?Q?kCIMPR27nH/Uwwu6nABpgQ/tBdId5S2Zic6OoHCi1svZQ3UV9spsmCxHrrL6?= =?us-ascii?Q?arRx/cLHE+NUt9pnPu+UsIjlmDDBwx2K6w5ywyaNuHGCHFwSEirzU/zBRU2W?= =?us-ascii?Q?ZGolxvCMgtJnm6BlZ0H2vxsRdMCItSg7buDeEtcfuuJ1BpUwg1RaXK/BUXV3?= =?us-ascii?Q?rVLyIefHWD+Eq874ty08Pqz4zEXfKEYYX5KtrPafYvjhQyZ9nSV2j3TfF7rO?= =?us-ascii?Q?QIHf8+84Fc9YD5yMUWIVr0X5LonIibGS8giknyAaNIwqcrLWbv0h/m6ZfK2s?= =?us-ascii?Q?rpfz6BtZ1Qnqb2kJ5DlRDQlXHg1rTXI4kAtIdy4eA3Hd6ANbaSFLGT/QjO23?= =?us-ascii?Q?djUcFAzaf72OWC7gp7C1J+m2ci9iQtxQQf2HV0QebTC+uZMSViYHpAGOoF7U?= =?us-ascii?Q?aSwtw7L7okazkVCP6PbrdCZLs6R7FqUq+k3fZLLhowOKcx6k2nqEoeUFytyt?= =?us-ascii?Q?OBd8rNjcp3u1VbQ1B4VVuk6Q2W/JnSHYUVwqbmHPBOewsfVe96jpQrfWzQoL?= =?us-ascii?Q?vM+BI7950P12CGp3oOfP7LZvn4k3rTq86fL01v0HBx94Hg4b2SjBn3n9NJGI?= =?us-ascii?Q?ylvvqWI3NK/5Vm7xuAAGanQhdOhImgKEQRfI9BnqybmD1cactsqY4pAyfbZ2?= =?us-ascii?Q?O1X/7EdXeMZ83z2A1swOn20PSsrFepMPd2d2DHBnSawCNGgrClAZ/QeIcrnx?= =?us-ascii?Q?UX6FyDSrr2Sk+SIVTs1a+59pSL7d/CbQl/2qbRb2/6hrwt8Spj7UzHVWI32Z?= =?us-ascii?Q?IVldxiJiQWI+db1TORy87sDkmrgBJc4P1sICnrmfLNajzEfC8wMktwMDYWip?= =?us-ascii?Q?dT242mbZ4oCzkc3/5oEYEra+y779jcJ2Fv5iRgIoOKEb2dEdpQ2lF2PSR2ps?= =?us-ascii?Q?8UiG9r0Z45+khYhnWvS8i5U0vFopjVeiboQtTX2xaT/aXTexBT2mF7o1XLrB?= =?us-ascii?Q?HbAr+VU592WQQyNN2t1hymI+6FF86KocbvoghwbDIVJCHa9VVdvc18vnWNh4?= =?us-ascii?Q?84O3Jx/EJYTotDjpdajUEcU=3D?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 598004ac-2d1b-4ce9-4c2b-08ddb0d5fcf5 X-MS-Exchange-CrossTenant-AuthSource: OS3P286MB0979.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jun 2025 15:12:07.5667 (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: 9VCKy2RaDT21t+8BXMRe1zadlt45pf6d2btyAeyK4sZhzVxRnsJ7O6E1SEufQSmsFzRhp5p01p4PNPcTTf9pNw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYWP286MB3033 X-ZohoMail-DKIM: pass (identity @valinux.co.jp) X-ZM-MESSAGEID: 1750518760470116600 Content-Type: text/plain; charset="utf-8" This is preparatory work for the upcoming commits that implement the standard PV time interface (ARM DEN 0057A). No functional changes intended. Signed-off-by: Koichiro Den --- xen/arch/arm/domain_build.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c index 4ff161887ec3..9d44b6fa9470 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -1070,6 +1070,23 @@ static int __init find_host_extended_regions(const s= truct kernel_info *kinfo, return res; } =20 +static int __init find_unused_regions(struct domain *d, + const struct kernel_info *kinfo, + struct membanks *ext_regions) +{ + if ( domain_use_host_layout(d) ) + { + if ( !is_iommu_enabled(d) ) + return find_host_extended_regions(kinfo, ext_regions); + else + return find_memory_holes(kinfo, ext_regions); + } + else + { + return find_domU_holes(kinfo, ext_regions); + } +} + int __init make_hypervisor_node(struct domain *d, const struct kernel_info *kinfo, int addrcells, int sizecells) @@ -1121,17 +1138,7 @@ int __init make_hypervisor_node(struct domain *d, if ( !ext_regions ) return -ENOMEM; =20 - if ( domain_use_host_layout(d) ) - { - if ( !is_iommu_enabled(d) ) - res =3D find_host_extended_regions(kinfo, ext_regions); - else - res =3D find_memory_holes(kinfo, ext_regions); - } - else - { - res =3D find_domU_holes(kinfo, ext_regions); - } + res =3D find_unused_regions(d, kinfo, ext_regions); =20 if ( res ) printk(XENLOG_WARNING "%pd: failed to allocate extended region= s\n", --=20 2.48.1 From nobody Fri Oct 31 03:48:27 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=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=1750518765; cv=pass; d=zohomail.com; s=zohoarc; b=mf+XVPQi43KJZUUKM94ZkgiSLhSkRvMyVnH4/+vmp8CIjTaTLu7H/p17bP7xB+nXIEODsRSoyi8AK5aseOcbTspuqU+Eq6bvJaZR9E/IkiHYaUi/7s/lb1DRaJqJkLuypMUjJhfp4XUYI8DAjNW+k1CZlJAsstPYAaNWqA/FYgk= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1750518765; 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=ZzEqMguDXik+OUbkQR4RTQfJmvwdGVxoIrMJVs4Ffn0=; b=GmQXfJQMYUezT5OHW+VW0aoxoly5ntoe+ITxXn8lxHUrrXNsSbas+2njQyGTcEoDggCeEcE4noGKi5r53Ua5LrbGtx81K/YxCIlTWU+/FDf7N2R/sA3ObDtpQmQ1Id+BP2zQ/Evh+1ZvD0VA6hTRs6YnCfthmKddkUIiPC8d4rU= 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 1750518765158854.5768506442442; Sat, 21 Jun 2025 08:12:45 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1021612.1397534 (Exim 4.92) (envelope-from ) id 1uSztE-0002Jt-5C; Sat, 21 Jun 2025 15:12:20 +0000 Received: by outflank-mailman (output) from mailman id 1021612.1397534; Sat, 21 Jun 2025 15:12:20 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1uSztD-0002JS-VC; Sat, 21 Jun 2025 15:12:19 +0000 Received: by outflank-mailman (input) for mailman id 1021612; Sat, 21 Jun 2025 15:12:19 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1uSztD-0002Hn-1Q for xen-devel@lists.xenproject.org; Sat, 21 Jun 2025 15:12:19 +0000 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazlp170100001.outbound.protection.outlook.com [2a01:111:f403:c406::1]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 1ee9fc84-4eb2-11f0-a30e-13f23c93f187; Sat, 21 Jun 2025 17:12:18 +0200 (CEST) Received: from OS3P286MB0979.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:10d::7) by TYWP286MB3033.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2fd::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8857.22; Sat, 21 Jun 2025 15:12:09 +0000 Received: from OS3P286MB0979.JPNP286.PROD.OUTLOOK.COM ([fe80::80f1:db56:4a11:3f7a]) by OS3P286MB0979.JPNP286.PROD.OUTLOOK.COM ([fe80::80f1:db56:4a11:3f7a%5]) with mapi id 15.20.8857.022; Sat, 21 Jun 2025 15:12:09 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 1ee9fc84-4eb2-11f0-a30e-13f23c93f187 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=E1BxLef7LVRWI6ip8AZdslSIgOJwKd9CyRVy54r3S0HT2611z56a3YOYYmKpeNi3AJXUc5tMJhIUDXZq2EVt4GYkMhB//ntuJ4r3LQwzg0g+RO/6wLWBO1bZZlxvCIPN2CjDa85Dn8Rko/U8KkTKjiDu08iyWhMxR0cfutQPSps9VKSRZ1EB42THbhvvEdDV/RxrZ5c8q7H1I3sRojXGX1uAhK2GU0VFR0E7eFWec65Ryl3WFIk951oC8Im1BmV+/6JpAATamHM6I+xJbgwjc9HBUHvvwq74huLjdPC7FOg0k0giQMob4Rbe/ZhHjbaSkiWl2e0ekbDF55kcs+V4Hw== 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=ZzEqMguDXik+OUbkQR4RTQfJmvwdGVxoIrMJVs4Ffn0=; b=o9UxXJ/2qRKq9Cb9bG94NUB87nl/G302ZWytSEfw4BXvPHRLbY55hDCeo2o/Kg5NjBTeIhH/tBoy59pXf9nBtSbb4cf71pmSFWvdpXy52saRgaADpkf2+9QB1OGdc3aY/BZLdd+bD+F2T0dDcWo7a8ml7HWivMd55CdpstKpjJ517oWsBRDX8k7rxuKa3Nk8LWSbul73HV36GrgJLEcWK99127URX3es/gYR9+0h3AMr8X2aW9yXUlZx/mb5Vjv/iDCEk8mznf8pVQ2uy7GpS6B2sWwsf6ilnlwggAKkMTzO1tr06Wp+GFFQDI3GRBNo7U/0FKruvEf+g+moOQTc8Q== 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=ZzEqMguDXik+OUbkQR4RTQfJmvwdGVxoIrMJVs4Ffn0=; b=LVmtatB5pLtahgirZJp961Vo+zoNCfEZKikw1x+NEsv3M/5RM9bWnqdv+4PzOk20tTOVwj3YBRC2JLjXjwVJnAoiDuYVEgY7KChNwY287itMgXMjbZGIEJKQqXrSRd+4sZzhzI6CSBvGRDGqSY8ZBZW78i2RMJ8aM3c8XXNF5RU= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; From: Koichiro Den To: xen-devel@lists.xenproject.org Cc: Koichiro Den , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , Volodymyr Babchuk Subject: [RFC PATCH 2/4] xen/arm: Move make_hypervisor_node() Date: Sun, 22 Jun 2025 00:11:59 +0900 Message-ID: <20250621151201.896719-3-den@valinux.co.jp> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250621151201.896719-1-den@valinux.co.jp> References: <20250621151201.896719-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY4P301CA0019.JPNP301.PROD.OUTLOOK.COM (2603:1096:405:2b1::13) To OS3P286MB0979.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:10d::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS3P286MB0979:EE_|TYWP286MB3033:EE_ X-MS-Office365-Filtering-Correlation-Id: da6b9d95-a852-42ee-72e8-08ddb0d5fe49 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|10070799003; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?QJgK6wI1IR4fvJwKOm95Yc7Ao7egDdTqhCnvD72QfloD3N5s8OnWekWOxthT?= =?us-ascii?Q?OIdQyUiPgsu8ze6ess4m4yrn//JOgVdMXnVLpyER4EjKE5YGXdDyBqxyz3qe?= =?us-ascii?Q?xCyCe2qkPSJvmJWlvmcXiYgcXXDKiGmpXSU0IWGcqopToq4Uggm2uwMM2tom?= =?us-ascii?Q?Y40r0DnEZYbKyXadn2JWc7MJ6Z3SWGCLqX/0WE0XKNCkNbxtkwkAZZtcFXum?= =?us-ascii?Q?wIV4mVOFGy9oQo863kAtSrePXk6PY5UuEKNQCO17d7A9YBJSgLCpAKpOZNog?= =?us-ascii?Q?HJAncLRhj/0ar2ImEc7Jp251FNIwdJ68aNkG/6TtNiafZpELf3yNPfQ4rxn+?= =?us-ascii?Q?4+p7tWLY6/QKOcxZe/kiQuCWysDsyTiR+whSSnZZt26qzKKeE4TdEfRLOKyt?= =?us-ascii?Q?LhkBDKJG7yVtYdwhHrhoeMkfSwuLPB0HO05A2svJnkyr2txKFcxxqMirjtE2?= =?us-ascii?Q?wPf7WdbhElHu4yQ1wtXl5FI10tYFmTr+Wt1ZngWe+Z2LEOTOYriUHFwmmcwm?= =?us-ascii?Q?dJnq3sdkD5Kyr0h4mxqPqZXsxhAknlgNdM/g4OsQSHiQOSiAVkCDd33A8zcX?= =?us-ascii?Q?pRKAMUgJVh/i+RbseNQ6z/1payh5xLJo9l6g1i+udSGP7kbxpXNfRP+k+iys?= =?us-ascii?Q?0wATX/x1ANzIP+uubu9KifJgu27JBHOuKG52xyb9MEGYp+qSi1e78H9jQkU3?= =?us-ascii?Q?Q6tm/qo3P3CV00OUt4EJ60Z4h3oK/3SM6ADjOzV1yEPV0YGLb8s5OOeieKsO?= =?us-ascii?Q?t0eZYt6dnbKc4l0QD5QmOSpVE+HSmoECctgSZgYa7AnKEWANw8IyvELD3j7u?= =?us-ascii?Q?C5Ya/6vLtXwUaa/mDhZBZ0sAXq+/5QkNBBCYktwZ3GXtCct7s78oJ7R/H5fC?= =?us-ascii?Q?ff3GPbp7bb0OSnDkCWbqQL5eK9hQf8MlP8OYrl70QFbZY0Va09PokcvKIsdP?= =?us-ascii?Q?CG4hUlZl30Ru/8Mmx7TzXpPWU0dp2jDYkuoXh3hCKUClJk0o9IpUzuBItOjp?= =?us-ascii?Q?o8jQ1IFmXLCnGqDrodXJQKRxw0RivDB6Kks+ZlHAemCx2rA2pUTEJDLAUHwJ?= =?us-ascii?Q?8QW+KY7UkCrsndtEg89QWkrNohJvA+/CosHbHkC3HeUAWr6tQ0cWueHSDCtc?= =?us-ascii?Q?f5nSx2X6VH09vu4XZYeR85/Io6YhKrNi4WNrJTiWPSDJhwGIztqhG2P3+PUv?= =?us-ascii?Q?X75sQ60VeOwZt42cNDBqbvdeTCmueuceaAyxY2vM7kxEH9KBQJ2f+SqdGEqZ?= =?us-ascii?Q?35WEc77NFoCTPe+/LC/+VPrREVjapJOFNrfo2o7BQVMXhleU4AZeLx7ms1jD?= =?us-ascii?Q?NO/w74KX/h4IQ/WlYW/L3Qi0hBATcXrXrzlYaZHOF43i2lju1+YgkxL5G2VL?= =?us-ascii?Q?bop/cKweOXiF1OosupBXfUBqLwXRmTwxjHhdNTrfQpdyfrjRNyM7vDNV2ZLO?= =?us-ascii?Q?IBpWk6u1rZ4=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS3P286MB0979.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(10070799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?NRnZaDRJ2tSFy/mQHnIp9yKMHEctB3ZMOcesXJEALSXrMYHQl5SeYvJS2aQq?= =?us-ascii?Q?Al17Dkcc+pzQx3a04a4r2kthIZ6AqHUWGMGNrJXwO3YLnBf9/6abkWHf4AY3?= =?us-ascii?Q?PZCMbnAk8vNC2VmIAEx1yRJhs+J+EsEQ8Y+UriUPNMNXjsxjpU/JVm1MnpUF?= =?us-ascii?Q?yBy/6n7cqS9YFAWbd5Epw0nnLFDJ9x9XBa5bvPHm6Qx/04Qdn44D8nwBa60E?= =?us-ascii?Q?wosLm/U6c4eInvIPIyCEx+7TSIc9EnDMZtPG05SveNPX4TqKRwGXh5+5XykB?= =?us-ascii?Q?5AeaDL43Lxx3k7M5t9Rrv/gtErQsalvvJYPmLtxCv5UOivLFnmZNadHvyQAv?= =?us-ascii?Q?tRnQBw/lTavvk1KFr7aBvWBj3We9OxLnUXUGNgFpx0U29pm1FdfvJGWCfckz?= =?us-ascii?Q?SQTzvtARX1HY+zNbNdQlipBNWqxVqR47+zRzXtRdIjBq6ULGq03iPpJgGiDI?= =?us-ascii?Q?FxYiv27YG+7nyaWjm0FP8MEDiywrD0fYb3alslyp04xpGPHuHUICFSHrOg2T?= =?us-ascii?Q?ns4YHGwMv3NGe8tLl79zCtOSIPreQ06ShlSMDy9iBpoM/2EMw8ZBCHiXZyuO?= =?us-ascii?Q?iq6kwJ+s6qaIh1AFCEukPiGVg6lH2jErNovvI5idmS4Eg9O589immhnvTak7?= =?us-ascii?Q?AvkFsDGxmbC1OVcw6q0nfFr3/LQwPayk7xWHgUnWdpUGGlUNGovGVKJZs6lZ?= =?us-ascii?Q?+xOdVoMJ1xIEpLVt7EiuTXb+oVLcFhLTexxaH0mIuY+y7PmFpum5TTDvZX7q?= =?us-ascii?Q?KIy0ESiNqylRmsR/k5oLhdJ7m3uDxwlCjwUN9Of9i+8/rKMKarVgArEMuEfg?= =?us-ascii?Q?NuSX+hvG3UVxlaUbGbDNeZSw/O27saXxgLvQtQ0akJ1YacNNa9EJJExxhlKb?= =?us-ascii?Q?T97IyFHdlbc5uwGhPeSdW4B4vfhWOeCZxVONKpA8jni/frXe1NH4yR9hcvRu?= =?us-ascii?Q?21jszU7jssrvaISAl9eo5HU9samXyB0KLaH4aEAU0y+d2LyDqRL7TUbjORVi?= =?us-ascii?Q?+Q2O/YOQufnnoq8zhL/umhTvdJBVHKCB/DNbQO3mXNNZx0Oeornn5MSLymm8?= =?us-ascii?Q?m4+54ivGFeIHSZz9khAZeRf0tmHOUCmOMbcO8+WlcbJBzSOWO0EME6Ef3gba?= =?us-ascii?Q?nQWVi75wpzEIGBWz/7a/QiAHqkuDzKsmd0EVkR3yydZeeIeIxsVQvumhTK5w?= =?us-ascii?Q?EFRBM1sh82RUjVxtknoiCHs8V8dnhi5A2YAeyMPd3X1Y4VNKGrBICI1sJHUh?= =?us-ascii?Q?L9anPM6iIHAysHNnG3Shar5SwoArnYfn308fx/bmydgcalm6lwg7RBCK1kqe?= =?us-ascii?Q?F3IaM//SqTkLzhh9E9vj90zL4dnLmXYhFQvvlVC0O+H59kCtnE7Pv8Lun9dW?= =?us-ascii?Q?ULyG+QxW4uB8w1exc0d5Dsa2xXPO3uy4jT5w/ZBXMGJghGpgAWQgpXZykOeo?= =?us-ascii?Q?jmbWnVUCBp6knOX53e7/tgIEUnHTy0w2h+ZYoWpKDQIIx6ofOI17H14WDP2V?= =?us-ascii?Q?9b/35MCryd3lj5QNZsf1PsCGWTBMZbZ7Y8V1RZs8pNnYfnm108XEZbzbhC+a?= =?us-ascii?Q?0PuqTNCLMnNEDW1sKEEBO0m5FAqOuVoSJqq1xishnIaVEl+S/rqJ0NLeIdJp?= =?us-ascii?Q?ApmScpFfVhrovAhgrDZCnZo=3D?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: da6b9d95-a852-42ee-72e8-08ddb0d5fe49 X-MS-Exchange-CrossTenant-AuthSource: OS3P286MB0979.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jun 2025 15:12:09.8013 (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: 1+RqEPMuLtsqsyPR9gpuwLjqf8vUO6IHPXM/xt2CqWJP1BFNR9J0YVqWS/W2KoZTWrG630luhW7CR++rrkx+sw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYWP286MB3033 X-ZohoMail-DKIM: pass (identity @valinux.co.jp) X-ZM-MESSAGEID: 1750518766345116600 Content-Type: text/plain; charset="utf-8" Even though make_hypervisor_node() does not rely on the /reserved-memory instantiation when calling find_unused_regions() (the wrapper introduced in the previous commit), the next but one commit will use it for PV time shared regions, in addition to the existing extended regions. Move it as a prerequisite for the commit after next. No functional changes intended. Signed-off-by: Koichiro Den --- xen/arch/arm/domain_build.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c index 9d44b6fa9470..967ca6f375ca 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -1725,14 +1725,6 @@ static int __init handle_node(struct domain *d, stru= ct kernel_info *kinfo, */ evtchn_allocate(d); =20 - /* - * The hypervisor node should always be created after all nodes - * from the host DT have been parsed. - */ - res =3D make_hypervisor_node(d, kinfo, addrcells, sizecells); - if ( res ) - return res; - res =3D make_psci_node(kinfo->fdt); if ( res ) return res; @@ -1763,6 +1755,14 @@ static int __init handle_node(struct domain *d, stru= ct kernel_info *kinfo, if ( res ) return res; } + + /* + * The hypervisor node should always be created after all nodes + * from the host DT have been parsed. + */ + res =3D make_hypervisor_node(d, kinfo, addrcells, sizecells); + if ( res ) + return res; } =20 res =3D fdt_end_node(kinfo->fdt); --=20 2.48.1 From nobody Fri Oct 31 03:48:27 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=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=1750518767; cv=pass; d=zohomail.com; s=zohoarc; b=RT+Rbryvr3jeVQJKxydMmHzJjzo4iVtFNhyUqnsCZZy1STitX62ht/Ptfc1bzMWrYSR6OXwMtommFQH7OjJ6oy4ylCcNcNevp3fdjxGcU/sRG7/zLhoiTjpKxcMvut2EuXoMKBKAHITprBN+uiqZeG1lK/fDvRN9NXkGXhSXjVo= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1750518767; 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=myCouYTkzXt1wRSFj6GnnII8PQIOCzOShhCCRH3V1mo=; b=Oru3T1j419Zay9OYgOySvUA3Rnf9uHNwAFqjF2snUBmTBChPgSRv2iucu9QTHjMAAu+1SLKDIAkRigcZBhENPBJL85eiyVinBO4iragkOyzx8+QYCAE60zRnNK/MLTSqKXm6Ez6/xlrGi3VEuyrw9NVlEjpBv+JEsGF1nRt0+7U= 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 17505187675271018.1630026246798; Sat, 21 Jun 2025 08:12:47 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1021614.1397555 (Exim 4.92) (envelope-from ) id 1uSztF-0002my-P4; Sat, 21 Jun 2025 15:12:21 +0000 Received: by outflank-mailman (output) from mailman id 1021614.1397555; Sat, 21 Jun 2025 15:12:21 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1uSztF-0002mk-HD; Sat, 21 Jun 2025 15:12:21 +0000 Received: by outflank-mailman (input) for mailman id 1021614; Sat, 21 Jun 2025 15:12:20 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1uSztE-0002Hn-PU for xen-devel@lists.xenproject.org; Sat, 21 Jun 2025 15:12:20 +0000 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazlp170100001.outbound.protection.outlook.com [2a01:111:f403:c406::1]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 1feb7d58-4eb2-11f0-a30e-13f23c93f187; Sat, 21 Jun 2025 17:12:19 +0200 (CEST) Received: from OS3P286MB0979.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:10d::7) by TYWP286MB3033.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2fd::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8857.22; Sat, 21 Jun 2025 15:12:11 +0000 Received: from OS3P286MB0979.JPNP286.PROD.OUTLOOK.COM ([fe80::80f1:db56:4a11:3f7a]) by OS3P286MB0979.JPNP286.PROD.OUTLOOK.COM ([fe80::80f1:db56:4a11:3f7a%5]) with mapi id 15.20.8857.022; Sat, 21 Jun 2025 15:12:11 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 1feb7d58-4eb2-11f0-a30e-13f23c93f187 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=w1Ht5usY0rN1H9cP9zns7rKOh+sfwSGpPrAP0wRMW5srBwyRY9k4Xx5SWwfsXyjCdmO92pVP/rm1z6EBQgLSitsKLcBukVtIysafoqafQRlAZj0E8zTxy9VKI14f5srJm49ri/PiolWZFSz1mOhA0JSBrqcyeXGyCK8lhF3uToZHRT2tvCryxkW28SVbVOAHjg18gNneTRUSH5J/lkxWhX3Iri9bWHna0HoROkJDpMFNfYT2MUUKtY6fsgex87g/FkP5jyAXzKEeBEL+NvhbSrQ1Tcoo13z2Ln1rW/xe3qB7QAf6wrvh9DsYz6phCoqDKjoS2jM+yP0HWVje1sgB+Q== 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=myCouYTkzXt1wRSFj6GnnII8PQIOCzOShhCCRH3V1mo=; b=YVqmDsdxka+V5/UT7JhFv8ki0Yi3TfqPlH87Bqp3r25WmFdxfyL4xA1aw0cXnQcrKtNYeRYF+9WJvybQ4Q2TaNNth+KlLgK2en+18xGAgwmz5l54AU53+ZiqBfKqXeZGAUKiSHUyM7//MVOaH8/wiToNfUy8YFjO/W+49mHXL8tIExITC/oAytmmrULFzY2wd0kZsmmFauMLaXZ8qvgAP0wGjtfeWYb5y1c7o+q33vPPkv6KZ5gromEbmmVgjpUUygpm++i4yfmrfDyrIwmS/xWw8Nex+XArmc7ePjUpj0pHYR6x9IAlJcn/XhnVs9BcxpF+mTgR0Wn4d/X+6X9p0A== 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=myCouYTkzXt1wRSFj6GnnII8PQIOCzOShhCCRH3V1mo=; b=hGfvc59LO+eiofgyxLRGFGc4sXFncGuKyy6QeKznd5wX4Ih5KRjCszEpOLKTSUx8y5so1WJOYfiwxQRunBhrSYSBBbASPi7jy7QMwxmqO+YCeMzY9mgmPl8lXZ4SibYyBqY09QH9sSOEcjjrTnEbR9tdVdw43+BRcwb+LyxClKU= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; From: Koichiro Den To: xen-devel@lists.xenproject.org Cc: Koichiro Den , 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: [RFC PATCH 3/4] xen/arm: Move make_resv_memory_node() Date: Sun, 22 Jun 2025 00:12:00 +0900 Message-ID: <20250621151201.896719-4-den@valinux.co.jp> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250621151201.896719-1-den@valinux.co.jp> References: <20250621151201.896719-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP286CA0321.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:3b7::14) To OS3P286MB0979.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:10d::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS3P286MB0979:EE_|TYWP286MB3033:EE_ X-MS-Office365-Filtering-Correlation-Id: a57fd3f5-b97b-4109-512c-08ddb0d5ff62 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016|10070799003; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?gzmwhQrfVE8tavuIWQH4k5LvHMLFFOqLu4VH7tcX2Lxo/zC+NVSXTeeyYy+u?= =?us-ascii?Q?CzQcWxwxr+tPd+r7a3ct13mhcJNhzl2yrjJe76MR53SH98B+28LWGkWwu6/J?= =?us-ascii?Q?QcXaeAyAWA0XJZekcXz+Jm8WIOzDTOAjD+lbFKks3RKVf/1raM3EjsXdXI59?= =?us-ascii?Q?2kfALtkKwu+PyrIy+1Jglawdl9Hepo3sCnc63K2m1XEWSOq+MnSXTn3GUISt?= =?us-ascii?Q?1OEdT+nhNDmOKSwFl0SldWETkZl/qaeP6uCr5rnWDJqsD3zr24DCT+BsC4uC?= =?us-ascii?Q?PtRMTdlnbQGSu3re2YzkbPf+BUWi8f++v8Tu9dMd+CAeGhh2AxNM6EK4EOmn?= =?us-ascii?Q?IA92QU8pf+rPqetjuEsVkuidsc7DpBMqPbDE38be6PXaTThoqhfZLhY5mK9U?= =?us-ascii?Q?WLmNUjDtueND5yEb8aMN2vV1vSk8fBG42eDv3FIdOD//sJ52C4ctI34UgdsV?= =?us-ascii?Q?EvRYRF2yILh8fIbrF6rWlSKSILw2YiCiMRyXwEiX7DTlJeiMqYizpYCSFnLV?= =?us-ascii?Q?zddpveoHQdmAxZyyChXn4SFbWRRuEi1YiOlJxOl1jj4UNGdzpu8DMYPZfwr2?= =?us-ascii?Q?E55V+9AeebGVGbwSEomG/QT23pGeRC2fMxemPZ+4SwAk1mRBHk//8xkH9IHS?= =?us-ascii?Q?GJJQ2DLCxtiO1zpGvSvm0gxKYJUvnw2yfqeraoPux3KazPsEcP9SUVSgbBkQ?= =?us-ascii?Q?p/akzn9lShr15Y3ahTdJuGB7xOtg7kSnBqvUmyVt/tbF5MOEt6cUCf9g6jCW?= =?us-ascii?Q?oqgZHBGrnrZymMKt0zRPwlnG+rtBHUB1bSnvYJuH34LFdGTh6tOa4J5EbWLU?= =?us-ascii?Q?khpwSAEUe+snxlZ7YvXGuEpHRLSDOu+dvKw/hly++OxdIe5h5Qhlz01sw8zN?= =?us-ascii?Q?7rB7pAJDfBrMBesZp1Dkmu+3v7b2SizxUIu/kxZ5SWU1SCWwSrv4UNr69rbX?= =?us-ascii?Q?4efdbHqQGrWkYxdMXtiKwv/R9bG9gDb8uTa/CqpRIdZmeoCCE0+K86YRviXx?= =?us-ascii?Q?L01sBP589X/OXkCtrkHckdv+xwvPsfz09AuiLK3aDGF0lew9qYybhd/blnWk?= =?us-ascii?Q?huK1sDYPUqAsgke87OYtaWb8uCDXw7ZJ7c3Pl68vXfsoCS/3diqNO2qeWfQY?= =?us-ascii?Q?sncStlnNx8zLGyz0v/arG0mIUPAeZQjCv41VFiZBiWHiwIdupCIYf08sem9w?= =?us-ascii?Q?IlNYAOk7xw+lhp74XD6fvAiAdwT1hgOYT9+JB0TuWHltBm77IFgdrH5NJrcN?= =?us-ascii?Q?JPVDIunrEBdj/Zkkp4Sk9af1cE+1uJPdFb9A/jXX9Z0voAf4i6T9L3AA6jeh?= =?us-ascii?Q?JfoNY2uQVxmYHPqP8aqHoZUFBT/x6JaTbX3Zzfawtupf3T1z0iwEWijT1IMX?= =?us-ascii?Q?N9aISg1cSUFyIa7hcRaz/7FYW1rumcfvgYZT81UGwoVImA288eprLyPiBEgU?= =?us-ascii?Q?SB3LTVSi7Qg=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS3P286MB0979.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(10070799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ryOf2l6xJDJZG1AsjS6qGWGqvDFWZu1myoMpCalf45Co8VbR+rbJp6HC3HG+?= =?us-ascii?Q?BmhvbITJQ7/Y3ticGe+1FGj7unZPj1CW/8RjX2xoA0OsAZWzR+Gkf1yFM9Fq?= =?us-ascii?Q?BRCec+svICyk/sNNuoGpZq7Chq4paZt8Xz7hDrbmPQeTdznm1qCcBYWVlGzh?= =?us-ascii?Q?N4WuCidRSqXcqELSmg3Fqo23VJTa4OhRFYzn0JgzXjRZFg4BHEjf9n5ffh8K?= =?us-ascii?Q?iVUCRya/IqgEQc2jCxZWe6FmgO+runp3J+BIZdzDplmgm3mtUXiYccW407CS?= =?us-ascii?Q?Q59V7kR14HsSYUWb+IQbTdbH9R/wgYgVVFnk2+RfTe/IS+v9gAZpR3IDB6mC?= =?us-ascii?Q?uybbh3NuL8fxsMHb5zJ1Vw7AwWazy6Su5G/XozAQQl7PZVEuGbUT0TMe+CTa?= =?us-ascii?Q?DR+NBW/D0KcnnXaQyaC9ucu9DSXZUGvxuttqU59fgSii4PzSwFz8Re+FwAPB?= =?us-ascii?Q?A/aBVt27rb8EAcbR9VcZR4Vy3kz4b9WCNUGzfnqLirAwl0SBWGzHTkGlwP+t?= =?us-ascii?Q?eQeGKtsbx075Osr6LuHn4ggYSbNXjgZFTFvUYtxMJ+FNtqIL1idIXIIkjJb2?= =?us-ascii?Q?1TBjURjvQJSHW9nyeX/RIQe6NwEAiDRXa5HXd7M3SBMWwO5r5PYcCkKrMnep?= =?us-ascii?Q?Oz4/ikElNTj//EVuLzTDmidaAalnyA4Gd7TlkvtgY7G+4ax3G27x/1G1DC2Q?= =?us-ascii?Q?kIndqPjhlvUWZ46E8JYCn3O7Ka+Dufqr/zB7bYkcEiCsnQJOVFgjfEP3Hmom?= =?us-ascii?Q?RPC3OgJkPclE7FPxW4bRjbi1P6kIgk3Gf/S2hv9ipv6It6Vl3NtiKjICUsQb?= =?us-ascii?Q?9oQRsLxb98dotJhIbdQviIQc3d4ZCTC6BMwfgn9DjOuDkoAoscHF/mVtnIA5?= =?us-ascii?Q?b7C6goXdtwHbME+BXK/2Hf9xsq4f6K80m4xMkLCvS9ZCNIm/NaNaYq+wN7rd?= =?us-ascii?Q?A6R9rz2CHNiS3zRA0J/JNXXkO/xzbSGUoEInpVSD3aAI2wE8SyYEjrujY5xm?= =?us-ascii?Q?sWO1b0aIQ4CCxQV7Yk846hVKNM8M0vE5yAV6MsJbRWj8dhe1Ph2DAmu7GjAw?= =?us-ascii?Q?mC4CRgsqdaoQC3uA8K/i5B6T8VEq9grxN6ed/4MWVKgkvoB1fbZ2ueRrUA1I?= =?us-ascii?Q?YZEzyNaaYTbKky3JBAYTcZQJOO9BI7zQl51bEAeZOlB8xpxqTPmhq/pEm4cr?= =?us-ascii?Q?/iCYFo7xqFR2j0XAuGUzV537RsGOzX4Tl4vT+tDubFotR9u6CV91mDa4w9A0?= =?us-ascii?Q?nhhvASxcyHR6gJWQd2iW4T35McwipaZyR/g2SaqIRHKug//B597XLWXUBdeF?= =?us-ascii?Q?STVeVxdMzlwTd/Aqxii8JRMqlcPOfq+jMEV8llRlXCWOs8OpDSoBniIi18y/?= =?us-ascii?Q?j1l4LgyN/YbrAz4bcW9n5OScoAMdDfRA+nQ5EPDidChYIgD4/E9RLFuuCam4?= =?us-ascii?Q?Ae4ssYjCSClITSPrUq3qna+mLBPW2Mlv90/HrKrLhu+FF1m4+yVyZdQ71dth?= =?us-ascii?Q?mfRmiHnFO4NYKTDB8R7WHTwuUbz5RekEVCxSbO2vla0U7pL6LtMpHMjzS8mL?= =?us-ascii?Q?FxuOpmJoY/6jZU9t/PqDoKViIMMOwFEmcHi7z0dM4Hth2tsAs5oJPKV5TDf5?= =?us-ascii?Q?nxanPLdgyw2XBKBsvqbL5w8=3D?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: a57fd3f5-b97b-4109-512c-08ddb0d5ff62 X-MS-Exchange-CrossTenant-AuthSource: OS3P286MB0979.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jun 2025 15:12:11.6450 (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: 4GgMlkH1B8Wn1JW35d0KBe5eD/uWUJrTBj8pGOY1ScufIlWaHNmkdJKvlLV+PYh2jIceaR4U6/1WQaQq0t18mg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYWP286MB3033 X-ZohoMail-DKIM: pass (identity @valinux.co.jp) X-ZM-MESSAGEID: 1750518768727116600 Content-Type: text/plain; charset="utf-8" The /reserved-memory node is inherently not specific to static-shmem. In the next commit, child nodes will be added under /reserved-memory for the stolen time shared memory regions. No functional changes intended. Signed-off-by: Koichiro Den --- xen/arch/arm/domain_build.c | 40 +++++++++++++++++++++++++++ xen/common/device-tree/static-shmem.c | 40 --------------------------- xen/include/xen/fdt-domain-build.h | 2 ++ xen/include/xen/static-shmem.h | 9 ------ 4 files changed, 42 insertions(+), 49 deletions(-) diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c index 967ca6f375ca..85b6909e2b0e 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -1561,6 +1561,46 @@ int __init make_chosen_node(const struct kernel_info= *kinfo) return res; } =20 +int __init make_resv_memory_node(const struct kernel_info *kinfo, int addr= cells, + int sizecells) +{ + const struct membanks *mem =3D kernel_info_get_shm_mem_const(kinfo); + void *fdt =3D kinfo->fdt; + int res =3D 0; + /* Placeholder for reserved-memory\0 */ + const char resvbuf[16] =3D "reserved-memory"; + + if ( mem->nr_banks =3D=3D 0 ) + /* No shared memory provided. */ + return 0; + + dt_dprintk("Create reserved-memory node\n"); + + res =3D fdt_begin_node(fdt, resvbuf); + if ( res ) + return res; + + res =3D fdt_property(fdt, "ranges", NULL, 0); + if ( res ) + return res; + + res =3D fdt_property_cell(fdt, "#address-cells", addrcells); + if ( res ) + return res; + + res =3D fdt_property_cell(fdt, "#size-cells", sizecells); + if ( res ) + return res; + + res =3D make_shm_resv_memory_node(kinfo, addrcells, sizecells); + if ( res ) + return res; + + res =3D fdt_end_node(fdt); + + return res; +} + static int __init handle_node(struct domain *d, struct kernel_info *kinfo, struct dt_device_node *node, p2m_type_t p2mt) diff --git a/xen/common/device-tree/static-shmem.c b/xen/common/device-tree= /static-shmem.c index 8023c0a484c1..7eede97fa25d 100644 --- a/xen/common/device-tree/static-shmem.c +++ b/xen/common/device-tree/static-shmem.c @@ -730,46 +730,6 @@ int __init process_shm_node(const void *fdt, int node,= uint32_t address_cells, return 0; } =20 -int __init make_resv_memory_node(const struct kernel_info *kinfo, int addr= cells, - int sizecells) -{ - const struct membanks *mem =3D kernel_info_get_shm_mem_const(kinfo); - void *fdt =3D kinfo->fdt; - int res =3D 0; - /* Placeholder for reserved-memory\0 */ - const char resvbuf[16] =3D "reserved-memory"; - - if ( mem->nr_banks =3D=3D 0 ) - /* No shared memory provided. */ - return 0; - - dt_dprintk("Create reserved-memory node\n"); - - res =3D fdt_begin_node(fdt, resvbuf); - if ( res ) - return res; - - res =3D fdt_property(fdt, "ranges", NULL, 0); - if ( res ) - return res; - - res =3D fdt_property_cell(fdt, "#address-cells", addrcells); - if ( res ) - return res; - - res =3D fdt_property_cell(fdt, "#size-cells", sizecells); - if ( res ) - return res; - - res =3D make_shm_resv_memory_node(kinfo, addrcells, sizecells); - if ( res ) - return res; - - res =3D fdt_end_node(fdt); - - return res; -} - void __init early_print_info_shmem(void) { const struct membanks *shmem =3D bootinfo_get_shmem(); diff --git a/xen/include/xen/fdt-domain-build.h b/xen/include/xen/fdt-domai= n-build.h index 45981dbec0b8..e9418857e386 100644 --- a/xen/include/xen/fdt-domain-build.h +++ b/xen/include/xen/fdt-domain-build.h @@ -25,6 +25,8 @@ int construct_domain(struct domain *d, struct kernel_info= *kinfo); int construct_hwdom(struct kernel_info *kinfo, const struct dt_device_node *node); int make_chosen_node(const struct kernel_info *kinfo); +int make_resv_memory_node(const struct kernel_info *kinfo, + int addrcells, int sizecells); int make_cpus_node(const struct domain *d, void *fdt); int make_hypervisor_node(struct domain *d, const struct kernel_info *kinfo, int addrcells, int sizecells); diff --git a/xen/include/xen/static-shmem.h b/xen/include/xen/static-shmem.h index 76a49869126c..4afa9107de5d 100644 --- a/xen/include/xen/static-shmem.h +++ b/xen/include/xen/static-shmem.h @@ -11,9 +11,6 @@ /* Worst case /memory node reg element: (addrcells + sizecells) */ #define DT_MEM_NODE_REG_RANGE_SIZE ((NR_MEM_BANKS + NR_SHMEM_BANKS) * 4) =20 -int make_resv_memory_node(const struct kernel_info *kinfo, int addrcells, - int sizecells); - int process_shm(struct domain *d, struct kernel_info *kinfo, const struct dt_device_node *node); =20 @@ -50,12 +47,6 @@ kernel_info_get_shm_mem_const(const struct kernel_info *= kinfo) /* Worst case /memory node reg element: (addrcells + sizecells) */ #define DT_MEM_NODE_REG_RANGE_SIZE (NR_MEM_BANKS * 4) =20 -static inline int make_resv_memory_node(const struct kernel_info *kinfo, - int addrcells, int sizecells) -{ - return 0; -} - static inline int process_shm(struct domain *d, struct kernel_info *kinfo, const struct dt_device_node *node) { --=20 2.48.1 From nobody Fri Oct 31 03:48:27 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=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=1750518761; cv=pass; d=zohomail.com; s=zohoarc; b=hR0YV6Nz5WzGjO5xXG43vCPDOVNMjQjMvg4j+B8CIm2L+FITUKu9k3+UAsEVMSVykRpJ5AhMjpB5yNzpysSdExze7hRmDg0/FsUUMH13UwvteQRzHqVvvKN0dik6YZKkc8aBlT/ISvZfFoFGc4F9m15uLicFC5CYG/jMS6BqE68= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1750518761; 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=7kqMEJ798ZMvRUHDoDgvFJRcUZEDqjdXngUvsN8djbY=; b=H3pxfbgLHxaiAQMgzNrJsln2NbJ+3lGPJ7EJxISOCinNaGNY8sDQ/LnCMZKm06bXkT+zrzpphmCZLQO6liSLbOrJ06ZmRqGPAopNwHGEj0Szn4QQ+Hle59fv7rjONv/HP//i4fmBFdMZlv5q4Big48IFjgNgSN2egWDtrILoUMY= 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 1750518761105265.99332343160097; Sat, 21 Jun 2025 08:12:41 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1021615.1397569 (Exim 4.92) (envelope-from ) id 1uSztG-0003BA-Ty; Sat, 21 Jun 2025 15:12:22 +0000 Received: by outflank-mailman (output) from mailman id 1021615.1397569; Sat, 21 Jun 2025 15:12:22 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1uSztG-0003AM-QF; Sat, 21 Jun 2025 15:12:22 +0000 Received: by outflank-mailman (input) for mailman id 1021615; Sat, 21 Jun 2025 15:12:21 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1uSztF-0002Hn-Pp for xen-devel@lists.xenproject.org; Sat, 21 Jun 2025 15:12:21 +0000 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazlp170100001.outbound.protection.outlook.com [2a01:111:f403:c406::1]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 20735cc8-4eb2-11f0-a30e-13f23c93f187; Sat, 21 Jun 2025 17:12:20 +0200 (CEST) Received: from OS3P286MB0979.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:10d::7) by TYWP286MB3033.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2fd::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8857.22; Sat, 21 Jun 2025 15:12:13 +0000 Received: from OS3P286MB0979.JPNP286.PROD.OUTLOOK.COM ([fe80::80f1:db56:4a11:3f7a]) by OS3P286MB0979.JPNP286.PROD.OUTLOOK.COM ([fe80::80f1:db56:4a11:3f7a%5]) with mapi id 15.20.8857.022; Sat, 21 Jun 2025 15:12:13 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 20735cc8-4eb2-11f0-a30e-13f23c93f187 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hpAygUs7+ALrwr/3UVsCwCPNBGUJ4eXZsw1vN2YEwBE7w/exvCP8+nC9NymKaS1NUYAKyrKlOyLgWkt+QLgVx+7i99nQD/ws2hfdIuJFGQJdInmaiJbl/hO4LfFUKdOq3KUFIo0BtvYR7VRiTiA2Ajz0YMPZddwB6qk5vfoVekcqdiSdtMeXFa0Z6sD4byIfProlhmLehazGieyN6vz8wXm5lhWjanJKu3hPRyW9wq9BGYWHxmIYeBTHh/JFb4B/ACIypBAkHDImUTLVLm6qOSYkF+GjgNA1BpECyGG5wIp8OqsexigraPZ6KoMN/lA1OpytZIxsWKBGuylUn1dpjg== 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=7kqMEJ798ZMvRUHDoDgvFJRcUZEDqjdXngUvsN8djbY=; b=tXeJWrJxttA0g6ALNuSOmLwicLMFL+oSPVL3cJD7JPk9siCKQxu7KFwRzQEkUPSZWhiF7/Zorojcsy7bzFNdcN2nejXa6Ylfj1cEJ71tQbyeCu8wcL/WaR+BPZkbsAGCcnwQ+kT3B3MTsBXRxdEnyv+C8T3G75xVEO3ZSTtH+FKMva2w5/Q12CZZogkfym3wJDiXycVD8lfbR/oAOAtTaisRme6/9dUYnUikbtzekWJtmA/5CnlGcp96AdLr130Q1Z5OyEajmWPvJlDk2hQdLix366m6ybmE09aw3USJMFz8PFNyNDHmb/fH2ZbQ59plAkkCWpAs2mkx4DctkAaATw== 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=7kqMEJ798ZMvRUHDoDgvFJRcUZEDqjdXngUvsN8djbY=; b=Q3RdmJGLQybMX6+xAn6vcXM1aO7eveUs1MFdkqVUx5P3u32u57meBZt9pVnDRffR6yad+kSoBoI1MmP5K9tqtKgavjykZL5hEgbQrcH/QXDnI0YR3NTTF0bxrKXWMRoSlKW/+S2ANVd3j0hky9qbjT+6kUOgN/RU6NbBvmjzSCk= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; From: Koichiro Den To: xen-devel@lists.xenproject.org Cc: Koichiro Den , 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: [RFC PATCH 4/4] xen/arm: Implement standard PV time interface as per ARM DEN 0057A Date: Sun, 22 Jun 2025 00:12:01 +0900 Message-ID: <20250621151201.896719-5-den@valinux.co.jp> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250621151201.896719-1-den@valinux.co.jp> References: <20250621151201.896719-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP286CA0323.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:3b7::15) To OS3P286MB0979.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:10d::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS3P286MB0979:EE_|TYWP286MB3033:EE_ X-MS-Office365-Filtering-Correlation-Id: 1a938403-aad8-4871-d792-08ddb0d6003f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016|10070799003; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?vzkc4W1n96iPSPmHu0T2IBfGCd/cfo4Cox3ZYy9nAdwQG6Ajls9zkR00SLV3?= =?us-ascii?Q?0CjjZuGH6fApLi1B1vJH+bsBnVXkDQjeA2QEdTSirIXednBD4ricOUyoFwWV?= =?us-ascii?Q?+DIidno53tZbaTI4A5YIHOLGln7Gbj2ZBiAJmF2w6USjpAuM5Sfa3FdPoGLF?= =?us-ascii?Q?BBiYgPC/Y7V3iqvHoNFXnx22DojRIXNZoHBHpY6/44qWBtNBji4u80i9lo0n?= =?us-ascii?Q?hd27QTZAaggjzW1aeRmkIHI9TzFhLz3UNE7MBfkSePijsVh/repLhGRI++4z?= =?us-ascii?Q?Ya2PvJiR3UTrCdygXEhSA95Y3ysRpTazHfIv5KkMSAIEoIxXmzwhX7TsZITY?= =?us-ascii?Q?7d0qS2yGE4DvQVM3jmSHbYokHx9o1THKYAbSjXKCDyw8Q5L9nxQY59a5awbA?= =?us-ascii?Q?CiPwRaRJaIYoNtHlBHMl4buFhmjy7EVdVYaRolS8d6TSGjHvP+Hta+1DipQW?= =?us-ascii?Q?RPPmTaOLispxkZroOqi5uMowsh9yzMOPNEg6CB3kC6oZVOwY4eSeiH6mpaGi?= =?us-ascii?Q?l+Ha4XZUqfhb+RTYKi47k5iKbYNGvFpA3rTehhR2vWSzRemm8+WOtdVGYEJh?= =?us-ascii?Q?/GA4L3rYEnwW87DFJZM9J8+QyaY72J0xhdfJMvezeZTqGsC29Uf2r3hvboZJ?= =?us-ascii?Q?safUSJT+ogaXqQb1l6yIGCFMbDqKVIEC/MMcnEPksvZPFfQXn3l1Xo0mDhAb?= =?us-ascii?Q?fYVBXRTOTILX2IL6TpjAeoC94f+/b5kyyufpwf8+vbrbw0eRRN89LXzaQeRt?= =?us-ascii?Q?cnqCXyu2t25gwfZOwCzGyNnDKx3/P0dtsm5jWi7OonByoWmBMpxmEIem9hgv?= =?us-ascii?Q?lKP5rl42ogwfKB2IdG0PKf0s+tvZLigPIZVzQMcCaH1XeiWDfIsT6w9rdnfI?= =?us-ascii?Q?ZO01Hr8oTAHXd0smL09IEgat+2EUjf0tSn0vCS8MxIW/XsPdR4CXn95rSHTc?= =?us-ascii?Q?X8n5XYwIXuw0UdpWbws9ulbVoX035QlrvgwLRCWayWj2jbFfA9U1xoQazn1m?= =?us-ascii?Q?OYx3QoGCaLGkyV0r4HtAcq9Uxws/xR8vUvjnL8NVUibOsoJln0olBgqLD44m?= =?us-ascii?Q?2C178zvfFHvL8vVPUm5wid2/Y/IvB3kzy0WuIBBF3yLI0hUIWUvkH4jt739M?= =?us-ascii?Q?SwSFkQcIva1ZMMhbArOb2i0XTT7MYvIVv0Smr7phsVLEdyAJd5gm4oqf2jQa?= =?us-ascii?Q?2IqxNapxqynJ2/P939FTyGnzxQl+yKO0+183nUJCuieM+IoBJP+9TMGApKah?= =?us-ascii?Q?ADKjALR48v6VvZpIegHvTHCJyDdmkwjkoozml31Km3Rji4bP3oE+UV5NCNBH?= =?us-ascii?Q?f9xXNzGwF0fHEnuV2BmlB9A0MkbdhPp6TJym9VTySGLN7Ok/gvk3qStX/cKj?= =?us-ascii?Q?rWCW2+j6c3ej4E48PknNgN8hF2+uXHkbonbfQ1vWR50dUHCLaGrr3jzy1zQr?= =?us-ascii?Q?tGgCc4E7rTs=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS3P286MB0979.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(10070799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?nyhrxn+omUJIBGCn0LCJcB6g1l5JhYeMgDTj82wkOhdzmAm3VTfmGgEMlD85?= =?us-ascii?Q?Gu559R5MJUgWZfqHMz7kRQZeL/iX4MyuNx1YHU2rejLmLrH2YZuUYh7N84NI?= =?us-ascii?Q?ICyI6XFmiq3WaRxjWuWqWxGcRnjvR+BGJz8DNrGj3qZhFRPdsZNBGkvwZM6o?= =?us-ascii?Q?2p5xzEp7sn4srXs5H+z/KQVuEDuMK1jGFU51uSNeN2NUkp3tKPxuLZnB7+4P?= =?us-ascii?Q?UXJxcguTIl6loGMXnoN8F8KH3wbZl4z9Mcf6sxcc1X+OlkY2JH2Dntthk8VZ?= =?us-ascii?Q?8f9UB5k1DHUNFv3v2QEHTPXQexgac3nBByrok67Lk4Tl9mrn0DjBBVKeBgWp?= =?us-ascii?Q?q9Vlccxmncq/tYOJ0n0ehiLwKfOc4Sc8yvDey1VG6hioxD/OsGdzG96cUTdk?= =?us-ascii?Q?SXtgMIDZCfBfO6ha20CcfcpIGPVmx4Av74P/+sPUr1uLG+ZMgc6+4OjAj/nh?= =?us-ascii?Q?izhaU04Y1wyxNdA3dTDEhinDBy4jDMAQaIraVKjNDNQWI3Y/kI45tejjX8L8?= =?us-ascii?Q?NGMtglhmK3H0BA52YQ41TMitIrMqzmJn2MmWI4B2nlypm9jGnre+IrKc/kZt?= =?us-ascii?Q?tbkTewLSlbwOjKxos4KwNLeZngpGzAm4EPjquid1LKPjDzLyBOcKlUWOylF9?= =?us-ascii?Q?FUQ18SwNRFi0ZKqIPkyBRmb9oIMMGum+F8IehxEiMP5OC+o9zb3tWfka+Eki?= =?us-ascii?Q?NOIyr/mDEZKJ4QIl63V1iP+kCyKEoegqvEKOvn036Y/pUSP1YOEPKzvHG/fL?= =?us-ascii?Q?2AWwWt8rBLZOAFqdHnD+CjaKmVAIedp79akXCzW/SHPE5Hg06Ep9GfPqfIRm?= =?us-ascii?Q?57pG/wVdzfLSfg40fAX3mZec2uu0muIgJ9GlDQfJFzjS3I8OjB5C8GwDsnRW?= =?us-ascii?Q?poBzf+8TIvISUwtJY2DEeNFg0CvvW25ZvI+VZXE2Rtsvq1UtKFkMgdchgZ+T?= =?us-ascii?Q?hVqz0btYch78HKG5MJ9b5I6lLhCRnOQ9A0anldqGbJGMlT7mjsDm64rhojEv?= =?us-ascii?Q?fye1M/n43eBo8U1lKNZHkeAuYcVYG61xC6HetjVWB69fANMJX3gPlNPkan3i?= =?us-ascii?Q?oYTDg/yaTqsF+yXMB9KeDUWWrd+Lp6ozKUHIwXyzM8vulGLLBk4mv2RV+S+z?= =?us-ascii?Q?tt8WTvSugaORYmTq9xu8+gMAR5/+t2vGMpHxXN8dlfE0mkBvl49/+lHw1G3P?= =?us-ascii?Q?Bjqu1gUUlg6uzs4Zkb9pmPoNH5CW6I1X+aZQZ+WwHnppu/Oxxj4Z2Ff0DOgk?= =?us-ascii?Q?KvyigeMTjK+gwT57+dAtuPwJXOMUpOThRSGbJ9O3GIdKKQB2KSvWorCo4K2t?= =?us-ascii?Q?oTCcmA4qOEldlkrBnoi5ERBI3Bn5UcBVQ1uEeJ2UZ7KzXGm/zkroDL5wgceZ?= =?us-ascii?Q?TI7BdAHn4Uyajrs6HsYxXWmwIyAVZUhM9knqLJwqEy3VLMfXA7g5P5+JwTuP?= =?us-ascii?Q?boSnsOVWhdjdQwhr4W0/+ZFte3l2DFb2UvjQd31IeF265LaQkSfr/X9L/E5X?= =?us-ascii?Q?iLLW7vgHrmqzuqeYxz+ETmoB+IQK347G4YcLBOIqbRxh/8IPQMncWhPPAGNd?= =?us-ascii?Q?hWY/j1ezCt1DvxxOR818xIXAq7USTwOsfTi4kpogpIeygO3jzeATTaewIc/q?= =?us-ascii?Q?NsHM3jZ/S5inhTFEDZ+WfkY=3D?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 1a938403-aad8-4871-d792-08ddb0d6003f X-MS-Exchange-CrossTenant-AuthSource: OS3P286MB0979.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jun 2025 15:12:13.1167 (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: XlRNmv7RDB/9eGjQGmVsGBFhPWgD72etZyodBWuhDBJQx4a1+Ikdl+KXUuctf6kgEFGSDuggaHyW+Hiq2YXA+A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYWP286MB3033 X-ZohoMail-DKIM: pass (identity @valinux.co.jp) X-ZM-MESSAGEID: 1750518762642116600 Content-Type: text/plain; charset="utf-8" The VCPUOP_register_runstate_memory_area hypercall is still actively used, e.g., in the Linux arm64 codebase. When KPTI is enabled, the area was not registered from the beginning due to the VA not always being valid. In such cases, Linux falls back to using the standard PV time interface (ARM DEN 0057A), but this interface has not been implemented in Xen for ARM64 (until this commit). The VCPUOP_register_runstate_phys_area was introduced, though it's unclear whether this would be used in Linux arm64 and when it will be prevalent amongst every possible downstream domain Linux variant. And of course Linux is not an only option for the Xen arm64 domains. Therefore, implementing the standard way of sharing PV time is generically beneficial, avoiding reliance on specially crafted hypercalls, the usage of which by guest VMs is not always guaranteed. Note that the PV_TIME_ST interface communicates with IPA (GPA), not GVA. Add the PV time interface according to ARM DEN 0057A. Signed-off-by: Koichiro Den --- xen/arch/arm/domain.c | 30 +++++++++ xen/arch/arm/domain_build.c | 87 ++++++++++++++++++++++++- xen/arch/arm/include/asm/domain.h | 17 +++++ xen/arch/arm/include/asm/smccc.h | 12 ++++ xen/arch/arm/vsmc.c | 38 +++++++++++ xen/common/device-tree/dom0less-build.c | 2 +- xen/include/xen/fdt-domain-build.h | 2 +- 7 files changed, 183 insertions(+), 5 deletions(-) diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c index be58a23dd725..e895e4111f1b 100644 --- a/xen/arch/arm/domain.c +++ b/xen/arch/arm/domain.c @@ -277,6 +277,18 @@ static void ctxt_switch_to(struct vcpu *n) WRITE_SYSREG(n->arch.mdcr_el2, MDCR_EL2); } =20 +static void update_stolen_time(struct vcpu *n) +{ + uint64_t tot_stolen; + + if ( is_idle_vcpu(current) ) + return; + + tot_stolen =3D n->runstate.time[RUNSTATE_runnable] + + n->runstate.time[RUNSTATE_offline]; + write_atomic(&n->arch.pv_time_region->stolen_time, tot_stolen); +} + static void schedule_tail(struct vcpu *prev) { ASSERT(prev !=3D current); @@ -291,6 +303,8 @@ static void schedule_tail(struct vcpu *prev) =20 update_runstate_area(current); =20 + update_stolen_time(current); + /* Ensure that the vcpu has an up-to-date time base. */ update_vcpu_system_time(current); } @@ -586,6 +600,8 @@ int arch_vcpu_create(struct vcpu *v) if ( get_ssbd_state() =3D=3D ARM_SSBD_RUNTIME ) v->arch.cpu_info->flags |=3D CPUINFO_WORKAROUND_2_FLAG; =20 + v->arch.pv_time_region =3D &v->domain->arch.pv_time_regions[v->vcpu_id= ]; + return rc; =20 fail: @@ -707,6 +723,7 @@ int arch_domain_create(struct domain *d, unsigned int flags) { unsigned int count =3D 0; + int order; int rc; =20 BUILD_BUG_ON(GUEST_MAX_VCPUS < MAX_VIRT_CPUS); @@ -791,6 +808,19 @@ int arch_domain_create(struct domain *d, d->arch.sve_vl =3D config->arch.sve_vl; #endif =20 + /* + * Preallocate the stolen time shared memory regions for all the + * possible vCPUs. + */ + order =3D get_order_from_bytes(d->max_vcpus * sizeof(struct pv_time_re= gion)); + d->arch.pv_time_regions_gfn =3D INVALID_GFN; + d->arch.pv_time_regions =3D alloc_xenheap_pages(order, 0); + if ( !d->arch.pv_time_regions ) { + rc =3D -ENOMEM; + goto fail; + } + memset(d->arch.pv_time_regions, 0, PAGE_SIZE << order); + return 0; =20 fail: diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c index 85b6909e2b0e..1c51b53d9c6b 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -1561,8 +1561,80 @@ int __init make_chosen_node(const struct kernel_info= *kinfo) return res; } =20 -int __init make_resv_memory_node(const struct kernel_info *kinfo, int addr= cells, - int sizecells) +int __init make_pv_time_resv_memory_node(struct domain *d, + const struct kernel_info *kinfo, + int addrcells, int sizecells) +{ + __be32 reg[GUEST_ROOT_ADDRESS_CELLS + GUEST_ROOT_SIZE_CELLS]; + unsigned int len =3D (addrcells + sizecells) * sizeof(__be32); + struct p2m_domain *p2m =3D p2m_get_hostp2m(d); + struct membanks *unused_banks =3D NULL; + void *fdt =3D kinfo->fdt; + unsigned regions_len; + gfn_t pv_time_gfn; + mfn_t pv_time_mfn; + paddr_t aligned; + paddr_t avail; + __be32 *cells; + int res; + int i; + + /* Find unused regions */ + regions_len =3D PAGE_ALIGN(d->max_vcpus * 64); + unused_banks =3D membanks_xzalloc(NR_MEM_BANKS, MEMORY); + if ( !unused_banks ) + return -ENOMEM; + + res =3D find_unused_regions(d, kinfo, unused_banks); + if ( res ) { + printk(XENLOG_WARNING "%pd: failed to find unused regions\n", d); + goto fail; + } + for ( i =3D 0; i < unused_banks->nr_banks; i++ ) { + const struct membank *bank =3D &unused_banks->bank[i]; + aligned =3D PAGE_ALIGN(bank->start); + avail =3D bank->size - (aligned - bank->start); + if ( avail >=3D regions_len ) + break; + } + if ( i =3D=3D unused_banks->nr_banks ) { + res =3D -ENOSPC; + goto fail; + } + + /* Insert P2M entry */ + pv_time_mfn =3D virt_to_mfn(d->arch.pv_time_regions); + pv_time_gfn =3D gaddr_to_gfn(aligned); + p2m_write_lock(p2m); + res =3D p2m_set_entry(p2m, pv_time_gfn, regions_len / PAGE_SIZE, + pv_time_mfn, p2m_ram_rw, p2m_access_r); + p2m_write_unlock(p2m); + if ( res ) { + printk(XENLOG_WARNING "%pd: failed to set P2M entry for PV_TIME\n"= , d); + goto fail; + } + d->arch.pv_time_regions_gfn =3D pv_time_gfn; + + /* Reserve the selected GFN */ + res =3D domain_fdt_begin_node(fdt, "pv-time", gfn_x(pv_time_gfn)); + if ( res ) + goto fail; + + cells =3D reg; + dt_child_set_range(&cells, addrcells, sizecells, gfn_x(pv_time_gfn), r= egions_len); + res =3D fdt_property(fdt, "reg", reg, len); + if ( res ) + goto fail; + + res =3D fdt_end_node(fdt); + + fail: + xfree(unused_banks); + return res; +} + +int __init make_resv_memory_node(struct domain *d, const struct kernel_inf= o *kinfo, + int addrcells, int sizecells) { const struct membanks *mem =3D kernel_info_get_shm_mem_const(kinfo); void *fdt =3D kinfo->fdt; @@ -1596,6 +1668,10 @@ int __init make_resv_memory_node(const struct kernel= _info *kinfo, int addrcells, if ( res ) return res; =20 + res =3D make_pv_time_resv_memory_node(d, kinfo, addrcells, sizecells); + if ( res ) + return res; + res =3D fdt_end_node(fdt); =20 return res; @@ -1744,6 +1820,11 @@ static int __init handle_node(struct domain *d, stru= ct kernel_info *kinfo, dt_n_size_cells(node)); if ( res ) return res; + + res =3D make_pv_time_resv_memory_node(d, kinfo, dt_n_addr_cells(no= de), + dt_n_size_cells(node)); + if ( res ) + return res; } =20 for ( child =3D node->child; child !=3D NULL; child =3D child->sibling= ) @@ -1791,7 +1872,7 @@ static int __init handle_node(struct domain *d, struc= t kernel_info *kinfo, =20 if ( !res_mem_node_found ) { - res =3D make_resv_memory_node(kinfo, addrcells, sizecells); + res =3D make_resv_memory_node(d, kinfo, addrcells, sizecells); if ( res ) return res; } diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/d= omain.h index a3487ca71303..c231c45fe40f 100644 --- a/xen/arch/arm/include/asm/domain.h +++ b/xen/arch/arm/include/asm/domain.h @@ -59,6 +59,18 @@ struct paging_domain { unsigned long p2m_total_pages; }; =20 +/* Stolen time shared memory region (ARM DEN 0057A.b) */ +struct pv_time_region { + /* This field must be 0 as per ARM DEN 0057A.b */ + uint32_t revision; + + /* This field must be 0 as per ARM DEN 0057A.b */ + uint32_t attribute; + + /* Total stolen time in nanoseconds */ + uint64_t stolen_time; +} __aligned(64); + struct arch_domain { #ifdef CONFIG_ARM_64 @@ -121,6 +133,9 @@ struct arch_domain void *tee; #endif =20 + struct pv_time_region *pv_time_regions; + gfn_t pv_time_regions_gfn; + } __cacheline_aligned; =20 struct arch_vcpu @@ -243,6 +258,8 @@ struct arch_vcpu */ bool need_flush_to_ram; =20 + struct pv_time_region *pv_time_region; + } __cacheline_aligned; =20 void vcpu_show_registers(struct vcpu *v); diff --git a/xen/arch/arm/include/asm/smccc.h b/xen/arch/arm/include/asm/sm= ccc.h index a289c48b7ffd..6207ac74b715 100644 --- a/xen/arch/arm/include/asm/smccc.h +++ b/xen/arch/arm/include/asm/smccc.h @@ -380,6 +380,18 @@ void arm_smccc_1_2_smc(const struct arm_smccc_1_2_regs= *args, ARM_SMCCC_OWNER_ARCH, \ 0x3FFF) =20 +#define ARM_SMCCC_HYP_PV_TIME_FEATURES \ + ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL, \ + ARM_SMCCC_CONV_64, \ + ARM_SMCCC_OWNER_HYPERVISOR, \ + 0x20) + +#define ARM_SMCCC_HYP_PV_TIME_ST \ + ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL, \ + ARM_SMCCC_CONV_64, \ + ARM_SMCCC_OWNER_HYPERVISOR, \ + 0x21) + /* SMCCC error codes */ #define ARM_SMCCC_NOT_REQUIRED (-2) #define ARM_SMCCC_ERR_UNKNOWN_FUNCTION (-1) diff --git a/xen/arch/arm/vsmc.c b/xen/arch/arm/vsmc.c index 6081f14ed0c1..1e2fbc1a62b4 100644 --- a/xen/arch/arm/vsmc.c +++ b/xen/arch/arm/vsmc.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -127,6 +128,10 @@ static bool handle_arch(struct cpu_user_regs *regs) if ( cpus_have_cap(ARM_WORKAROUND_BHB_SMCC_3) ) ret =3D ARM_SMCCC_SUCCESS; break; + case ARM_SMCCC_HYP_PV_TIME_FEATURES: + if ( !gfn_eq(current->domain->arch.pv_time_regions_gfn, INVALI= D_GFN) ) + ret =3D ARM_SMCCC_SUCCESS; + break; } =20 set_user_reg(regs, 0, ret); @@ -162,6 +167,35 @@ static bool handle_arch(struct cpu_user_regs *regs) return false; } =20 +static bool fill_pv_time_features(struct cpu_user_regs *regs) +{ + uint32_t arch_func_id =3D get_user_reg(regs, 1); + int ret =3D ARM_SMCCC_NOT_SUPPORTED; + + if ( arch_func_id =3D=3D ARM_SMCCC_HYP_PV_TIME_ST && + !gfn_eq(current->domain->arch.pv_time_regions_gfn, INVALID_GFN) ) + ret =3D ARM_SMCCC_SUCCESS; + + set_user_reg(regs, 0, ret); + + return true; +} + +static bool fill_pv_time_st(struct cpu_user_regs *regs) +{ + register_t ret =3D ARM_SMCCC_NOT_SUPPORTED; + paddr_t gaddr; + + if ( !gfn_eq(current->domain->arch.pv_time_regions_gfn, INVALID_GFN) ) + { + gaddr =3D gfn_to_gaddr(current->domain->arch.pv_time_regions_gfn); + ret =3D gaddr + current->vcpu_id * sizeof(struct pv_time_region); + } + + set_user_reg(regs, 0, ret); + return true; +} + /* SMCCC interface for hypervisor. Tell about itself. */ static bool handle_hypervisor(struct cpu_user_regs *regs) { @@ -176,6 +210,10 @@ static bool handle_hypervisor(struct cpu_user_regs *re= gs) case ARM_SMCCC_REVISION_FID(HYPERVISOR): return fill_revision(regs, XEN_SMCCC_MAJOR_REVISION, XEN_SMCCC_MINOR_REVISION); + case ARM_SMCCC_HYP_PV_TIME_FEATURES: + return fill_pv_time_features(regs); + case ARM_SMCCC_HYP_PV_TIME_ST: + return fill_pv_time_st(regs); default: return false; } diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tr= ee/dom0less-build.c index 3d503c697337..fa31b1733388 100644 --- a/xen/common/device-tree/dom0less-build.c +++ b/xen/common/device-tree/dom0less-build.c @@ -502,7 +502,7 @@ static int __init prepare_dtb_domU(struct domain *d, st= ruct kernel_info *kinfo) if ( ret ) goto err; =20 - ret =3D make_resv_memory_node(kinfo, addrcells, sizecells); + ret =3D make_resv_memory_node(d, kinfo, addrcells, sizecells); if ( ret ) goto err; =20 diff --git a/xen/include/xen/fdt-domain-build.h b/xen/include/xen/fdt-domai= n-build.h index e9418857e386..645e7d0a54aa 100644 --- a/xen/include/xen/fdt-domain-build.h +++ b/xen/include/xen/fdt-domain-build.h @@ -25,7 +25,7 @@ int construct_domain(struct domain *d, struct kernel_info= *kinfo); int construct_hwdom(struct kernel_info *kinfo, const struct dt_device_node *node); int make_chosen_node(const struct kernel_info *kinfo); -int make_resv_memory_node(const struct kernel_info *kinfo, +int make_resv_memory_node(struct domain *d, const struct kernel_info *kinf= o, int addrcells, int sizecells); int make_cpus_node(const struct domain *d, void *fdt); int make_hypervisor_node(struct domain *d, const struct kernel_info *kinfo, --=20 2.48.1