[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2] xen/arm: Drop process_shm_chosen()


  • To: Michal Orzel <michal.orzel@xxxxxxx>
  • From: Bertrand Marquis <Bertrand.Marquis@xxxxxxx>
  • Date: Wed, 2 Apr 2025 08:59:37 +0000
  • Accept-language: en-GB, en-US
  • Arc-authentication-results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com])
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none
  • Arc-message-signature: i=2; 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=ERBiYWJ2Gt9JuwxSCCPkBVODkT3XJbnuq0l8QqZGlZ8=; b=I4Ll9lRnHmjw4HAx7M9kEb7pgji3la2K0/y1TvamQT/HV3DTnhFbmtvtqXfwv3f5ykc82YLliAHzPMooRwzBIlPzjVnP0+Ol6X0Pkp8y3ll23Y56XH4snZqkhUCmFe1J2bLmtHlf2vBC95hrShJka0fmPCAhaN/qVmhV8BrAVqvPb8IBZHNCLsynzls/UrNTcKJSfdrPHZsIn//H1B3Dr5gFUmfjU+YKmJSb+cKAnzv2tbE7l/cxj6coIjMHc9+98yfAIC89XYA90sEgdMeZW/n8OG1uFSSQ28rBsBryMD4rV/GGduw3dyIcGFEePNvS5a70XTuj+4ZZRQctPJ7GSQ==
  • 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=ERBiYWJ2Gt9JuwxSCCPkBVODkT3XJbnuq0l8QqZGlZ8=; b=KOibUa35o8AW9ya7wBL8+GQ69WEjfZdwqd4WD0SwaDYFFqNBOtq4WTBAZ0AIJoDZQmUJISpmvOdodIdar+MbLJTKNHwq4Nd7Vu+vS/X3gDSb/5dD4KGrSyPifzRjCdSycxL8nyRpJwTQlspy4wY7N3cbtxchX7dFn4SIoxpOIzxreQgMX6Xd6VdRO23ih6a+onMbNZlKOmDoxdnOcDMbWl63a9uKXg7EOuQgeS6DCayHQOpVr347/BCyu6M2ATVGk7kcJ+aWMpppL88Z6SXo1o2Lazyjt+oG6pZ3zNIkT5jChDPnlErLT5sMB5B8mv1/sLNDlRE8wSt7Mh8gCGPJdg==
  • Arc-seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=yhT2aMVFLP1HahJkeRMTIwQDY22qpwYa/hU0h7FEkI7CuP/ynArOBIVwCGdSnTCFqiQtMhf5HsERXbP7utcApcZTpH+1BPf3Lmlz64zc50iFTB7loAGzPe/+JGLBBskNKtADWu/THOmFRzisJ761Sw+rCBi/RQXawO2cah25D5YY26sqoNF3ID7sjndTBRq9N8JQLvXoMw97vjZmbkZ5VO8riTN3SUxCWiWMg4u4SfRxiAhs8nKGu9eUzM9B6Ne00AZpQ60Pyq5KIw1Q2/Tnkolzwuh1Ohe+JOTHwPS2E1OgEFa8IgBDcuxEVxMU8mz4j3tya0SxbkHAYBQ1VoObrg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=CG/PP4f07iECl8GSLMc7l06chON0YEHXZU6O5VxHNMHmPJKRLOFRKslE0VIfc7g/TFs47zH9yHACkWAa5uxrc67Urv3AEFpiAa2LKNW2E+oZUIM1a1zFni0ohdZH930AMowxA1imUu8vey8fuhurwG9bvDo0gRRr980iHFuBtcjhSi+ZEkCPUxvc/Z/Ut4SdrzkMkmhgX8WinsTH7BwRtYQWLlJz81bYUgzssBNKXYv/z9ZFvxMVaVwBmsGGDl5AXx/QZHm9L43w4vmhJLZUUEe60pe4h8uLgzggoN9ktArumKBbwgkIFknQrOcDRrMzTPSkgbZJg4htZqUAbomHyw==
  • Authentication-results-original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
  • Cc: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>
  • Delivery-date: Wed, 02 Apr 2025 08:59:51 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Nodisclaimer: true
  • Original-authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
  • Thread-index: AQHbo6s3glvEsGfqTEyrN7Z2cNAq6bOQE7yA
  • Thread-topic: [PATCH v2] xen/arm: Drop process_shm_chosen()

Hi Michal,

> On 2 Apr 2025, at 10:42, Michal Orzel <michal.orzel@xxxxxxx> wrote:
> 
> There's no benefit in having process_shm_chosen() next to process_shm().
> The former is just a helper to pass "/chosen" node to the latter for
> hwdom case. Drop process_shm_chosen() and instead use process_shm()
> passing NULL as node parameter, which will result in searching for and
> using /chosen to find shm node (the DT full path search is done in
> process_shm() to avoid expensive lookup if !CONFIG_STATIC_SHM). This
> will simplify future handling of hw/control domain separation.
> 
> Signed-off-by: Michal Orzel <michal.orzel@xxxxxxx>

Thanks for the BUG_ON :-)

Reviewed-by: Bertrand Marquis <bertrand.marquis@xxxxxxx>

Cheers
Bertrand

> ---
> Changes in v2:
> - rebase on ACPI fix
> - add BUG_ON for !/chosen
> ---
> xen/arch/arm/domain_build.c             |  2 +-
> xen/arch/arm/include/asm/static-shmem.h | 14 --------------
> xen/arch/arm/static-shmem.c             |  7 +++++++
> 3 files changed, 8 insertions(+), 15 deletions(-)
> 
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 85f423214a44..634333cddef3 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -2327,7 +2327,7 @@ int __init construct_hwdom(struct kernel_info *kinfo)
> 
>     if ( acpi_disabled )
>     {
> -        rc = process_shm_chosen(d, kinfo);
> +        rc = process_shm(d, kinfo, NULL);
>         if ( rc < 0 )
>             return rc;
>     }
> diff --git a/xen/arch/arm/include/asm/static-shmem.h 
> b/xen/arch/arm/include/asm/static-shmem.h
> index fd0867c4f26b..94eaa9d500f9 100644
> --- a/xen/arch/arm/include/asm/static-shmem.h
> +++ b/xen/arch/arm/include/asm/static-shmem.h
> @@ -18,14 +18,6 @@ int make_resv_memory_node(const struct kernel_info *kinfo, 
> int addrcells,
> int process_shm(struct domain *d, struct kernel_info *kinfo,
>                 const struct dt_device_node *node);
> 
> -static inline int process_shm_chosen(struct domain *d,
> -                                     struct kernel_info *kinfo)
> -{
> -    const struct dt_device_node *node = dt_find_node_by_path("/chosen");
> -
> -    return process_shm(d, kinfo, node);
> -}
> -
> int process_shm_node(const void *fdt, int node, uint32_t address_cells,
>                      uint32_t size_cells);
> 
> @@ -74,12 +66,6 @@ static inline int process_shm(struct domain *d, struct 
> kernel_info *kinfo,
>     return 0;
> }
> 
> -static inline int process_shm_chosen(struct domain *d,
> -                                     struct kernel_info *kinfo)
> -{
> -    return 0;
> -}
> -
> static inline void init_sharedmem_pages(void) {};
> 
> static inline int remove_shm_from_rangeset(const struct kernel_info *kinfo,
> diff --git a/xen/arch/arm/static-shmem.c b/xen/arch/arm/static-shmem.c
> index c74fa13d4847..e8d4ca3ba3ff 100644
> --- a/xen/arch/arm/static-shmem.c
> +++ b/xen/arch/arm/static-shmem.c
> @@ -297,6 +297,13 @@ int __init process_shm(struct domain *d, struct 
> kernel_info *kinfo,
> {
>     struct dt_device_node *shm_node;
> 
> +    /* Hwdom case - shm node under /chosen */
> +    if ( !node )
> +    {
> +        node = dt_find_node_by_path("/chosen");
> +        BUG_ON(!node);
> +    }
> +
>     dt_for_each_child_node(node, shm_node)
>     {
>         const struct membank *boot_shm_bank;
> -- 
> 2.25.1
> 




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.