xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Julien Grall <julien@xen.org>
To: Wei Chen <wei.chen@arm.com>,
	xen-devel@lists.xenproject.org, sstabellini@kernel.org,
	jbeulich@suse.com
Cc: Bertrand.Marquis@arm.com
Subject: Re: [XEN RFC PATCH 39/40] xen/x86: move numa_setup to common to support NUMA switch in command line
Date: Fri, 27 Aug 2021 15:37:42 +0100	[thread overview]
Message-ID: <4759ddf5-fabb-ebca-9271-38ed5d69b970@xen.org> (raw)
In-Reply-To: <20210811102423.28908-40-wei.chen@arm.com>

Hi Wei,

On 11/08/2021 11:24, Wei Chen wrote:
> Xen x86 has created a command line parameter "numa" as NUMA switch for
> user to turn on/off NUMA. As device tree based NUMA has been enabled
> for Arm, this parameter can be reused by Arm. So in this patch, we move
> this parameter to common.
> 
> Signed-off-by: Wei Chen <wei.chen@arm.com>
> ---
>   xen/arch/x86/numa.c    | 34 ----------------------------------
>   xen/common/numa.c      | 35 ++++++++++++++++++++++++++++++++++-
>   xen/include/xen/numa.h |  1 -
>   3 files changed, 34 insertions(+), 36 deletions(-)
> 
> diff --git a/xen/arch/x86/numa.c b/xen/arch/x86/numa.c
> index 8b43be4aa7..380d8ed6fd 100644
> --- a/xen/arch/x86/numa.c
> +++ b/xen/arch/x86/numa.c
> @@ -11,7 +11,6 @@
>   #include <xen/nodemask.h>
>   #include <xen/numa.h>
>   #include <xen/keyhandler.h>
> -#include <xen/param.h>
>   #include <xen/time.h>
>   #include <xen/smp.h>
>   #include <xen/pfn.h>
> @@ -19,9 +18,6 @@
>   #include <xen/sched.h>
>   #include <xen/softirq.h>
>   
> -static int numa_setup(const char *s);
> -custom_param("numa", numa_setup);
> -
>   #ifndef Dprintk
>   #define Dprintk(x...)
>   #endif
> @@ -50,35 +46,6 @@ void numa_set_node(int cpu, nodeid_t node)
>       cpu_to_node[cpu] = node;
>   }
>   
> -/* [numa=off] */
> -static __init int numa_setup(const char *opt)
> -{
> -    if ( !strncmp(opt,"off",3) )
> -        numa_off = true;
> -    else if ( !strncmp(opt,"on",2) )
> -        numa_off = false;
> -#ifdef CONFIG_NUMA_EMU
> -    else if ( !strncmp(opt, "fake=", 5) )
> -    {
> -        numa_off = false;
> -        numa_fake = simple_strtoul(opt+5,NULL,0);
> -        if ( numa_fake >= MAX_NUMNODES )
> -            numa_fake = MAX_NUMNODES;
> -    }
> -#endif
> -#ifdef CONFIG_ACPI_NUMA
> -    else if ( !strncmp(opt,"noacpi",6) )
> -    {
> -        numa_off = false;
> -        acpi_numa = -1;
> -    }
> -#endif
> -    else
> -        return -EINVAL;
> -
> -    return 0;
> -}
> -
>   /*
>    * Setup early cpu_to_node.
>    *
> @@ -287,4 +254,3 @@ static __init int register_numa_trigger(void)
>       return 0;
>   }
>   __initcall(register_numa_trigger);
> -
> diff --git a/xen/common/numa.c b/xen/common/numa.c
> index 88f1594127..c98eb8d571 100644
> --- a/xen/common/numa.c
> +++ b/xen/common/numa.c
> @@ -14,8 +14,12 @@
>   #include <xen/smp.h>
>   #include <xen/pfn.h>
>   #include <xen/sched.h>
> +#include <xen/param.h>
>   #include <asm/acpi.h>
>   
> +static int numa_setup(const char *s);
> +custom_param("numa", numa_setup);
> +
>   struct node_data node_data[MAX_NUMNODES];
>   
>   /* Mapping from pdx to node id */
> @@ -324,7 +328,7 @@ int __init numa_scan_nodes(u64 start, u64 end)
>   }
>   
>   #ifdef CONFIG_NUMA_EMU
> -int numa_fake __initdata = 0;
> +static int numa_fake __initdata = 0;
>   
>   /* Numa emulation */
>   static int __init numa_emulation(u64 start_pfn, u64 end_pfn)
> @@ -409,3 +413,32 @@ void __init numa_initmem_init(unsigned long start_pfn, unsigned long end_pfn)
>       /* architecture specified fallback operations */
>       arch_numa_init_failed_fallback();
>   }
> +
> +/* [numa=off] */

The documentation also needs be be updated to reflect that facts this 
option is not architecture-agnostic.

> +static __init int numa_setup(const char *opt)
> +{
> +    if ( !strncmp(opt,"off",3) )
> +        numa_off = true;
> +    else if ( !strncmp(opt,"on",2) )
> +        numa_off = false;
> +#ifdef CONFIG_NUMA_EMU
> +    else if ( !strncmp(opt, "fake=", 5) )
> +    {
> +        numa_off = false;
> +        numa_fake = simple_strtoul(opt+5,NULL,0);
> +        if ( numa_fake >= MAX_NUMNODES )
> +            numa_fake = MAX_NUMNODES;
> +    }
> +#endif
> +#ifdef CONFIG_ACPI_NUMA
> +    else if ( !strncmp(opt,"noacpi",6) )
> +    {
> +        numa_off = false;
> +        acpi_numa = -1;
> +    }
> +#endif

Looking at this code, I am not quite too sure to understand the 
difference between between "numa=noacpi" and "numa=off".

In fact, I am tempted to say this option should disappear because this 
is odd to have a firmware specific option just for ACPI but not DT. Even 
if we have one for each, this makes things a bit more complicated for 
the admin.

> +    else
> +        return -EINVAL;
> +
> +    return 0;
> +}
> diff --git a/xen/include/xen/numa.h b/xen/include/xen/numa.h
> index b9b5d1ad88..c647fef736 100644
> --- a/xen/include/xen/numa.h
> +++ b/xen/include/xen/numa.h
> @@ -83,7 +83,6 @@ extern void numa_initmem_init(unsigned long start_pfn, unsigned long end_pfn);
>   extern void numa_set_node(int cpu, nodeid_t node);
>   extern int numa_scan_nodes(u64 start, u64 end);
>   extern bool numa_off;
> -extern int numa_fake;
>   extern s8 acpi_numa;
>   
>   extern void setup_node_bootmem(nodeid_t nodeid, u64 start, u64 end);
> 

Cheers,

-- 
Julien Grall


  reply	other threads:[~2021-08-27 14:38 UTC|newest]

Thread overview: 196+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-11 10:23 [XEN RFC PATCH 00/40] Add device tree based NUMA support to Arm64 Wei Chen
2021-08-11 10:23 ` [XEN RFC PATCH 01/40] tools: Fix -Werror=maybe-uninitialized for xlu_pci_parse_bdf Wei Chen
2021-08-11 10:49   ` Jan Beulich
2021-08-13  6:28     ` Wei Chen
2021-08-11 10:23 ` [XEN RFC PATCH 02/40] xen/arm: Print a 64-bit number in hex from early uart Wei Chen
2021-08-19 13:05   ` Julien Grall
2021-08-20  1:13     ` Wei Chen
2021-08-11 10:23 ` [XEN RFC PATCH 03/40] xen/x86: Initialize memnodemapsize while faking NUMA node Wei Chen
2021-08-12 15:32   ` Jan Beulich
2021-08-13  7:26     ` Wei Chen
2021-08-13  8:29       ` Jan Beulich
2021-08-11 10:23 ` [XEN RFC PATCH 04/40] xen/arm: return default DMA bit width when platform is not set Wei Chen
2021-08-11 10:54   ` Jan Beulich
2021-08-13  6:54     ` Wei Chen
2021-08-13  6:56       ` Jan Beulich
2021-08-19 13:28   ` Julien Grall
2021-08-20  2:04     ` Wei Chen
2021-08-20  8:20       ` Julien Grall
2021-08-20  9:37         ` Wei Chen
2021-08-20 11:18           ` Julien Grall
2021-08-20 11:58             ` Wei Chen
2021-08-11 10:23 ` [XEN RFC PATCH 05/40] xen/arm: Fix lowmem_bitsize when arch_get_dma_bitsize return 0 Wei Chen
2021-08-19 13:32   ` Julien Grall
2021-08-20  2:05     ` Wei Chen
2021-08-11 10:23 ` [XEN RFC PATCH 06/40] xen: decouple NUMA from ACPI in Kconfig Wei Chen
2021-08-12 15:36   ` Jan Beulich
2021-08-13  7:27     ` Wei Chen
2021-08-12 16:54   ` Julien Grall
2021-08-13  7:28     ` Wei Chen
2021-08-11 10:23 ` [XEN RFC PATCH 07/40] xen/arm: use !CONFIG_NUMA to keep fake NUMA API Wei Chen
2021-08-19 13:34   ` Julien Grall
2021-08-20  2:08     ` Wei Chen
2021-08-20  8:23       ` Julien Grall
2021-08-20 10:24         ` Wei Chen
2021-08-20 11:24           ` Julien Grall
2021-08-20 12:23             ` Wei Chen
2021-08-20 14:41               ` Julien Grall
2021-08-11 10:23 ` [XEN RFC PATCH 08/40] xen/x86: Move NUMA memory node map functions to common Wei Chen
2021-08-23 17:47   ` Julien Grall
2021-08-24  4:07     ` Wei Chen
2021-08-11 10:23 ` [XEN RFC PATCH 09/40] xen/x86: Move numa_add_cpu_node " Wei Chen
2021-08-23 17:54   ` Julien Grall
2021-08-24  4:18     ` Wei Chen
2021-08-11 10:23 ` [XEN RFC PATCH 10/40] xen/x86: Move NR_NODE_MEMBLKS macro " Wei Chen
2021-08-23 17:58   ` Julien Grall
2021-08-11 10:23 ` [XEN RFC PATCH 11/40] xen/x86: Move NUMA nodes and memory block ranges " Wei Chen
2021-08-24 17:40   ` Julien Grall
2021-08-25  0:57     ` Wei Chen
2021-08-11 10:23 ` [XEN RFC PATCH 12/40] xen/x86: Move numa_initmem_init " Wei Chen
2021-08-25 10:21   ` Julien Grall
2021-08-25 11:15     ` Wei Chen
2021-08-25 13:26       ` Julien Grall
2021-08-11 10:23 ` [XEN RFC PATCH 13/40] xen/arm: introduce numa_set_node for Arm Wei Chen
2021-08-25 10:36   ` Julien Grall
2021-08-25 12:07     ` Wei Chen
2021-08-25 13:24       ` Julien Grall
2021-08-26  5:13         ` Wei Chen
2021-08-11 10:23 ` [XEN RFC PATCH 14/40] xen/arm: set NUMA nodes max number to 64 by default Wei Chen
2021-08-25 13:28   ` Julien Grall
2021-08-25 13:36     ` Jan Beulich
2021-08-26  2:26       ` Wei Chen
2021-08-11 10:23 ` [XEN RFC PATCH 15/40] xen/x86: move NUMA API from x86 header to common header Wei Chen
2021-08-11 10:23 ` [XEN RFC PATCH 16/40] xen/arm: Create a fake NUMA node to use common code Wei Chen
2021-08-26 23:10   ` Stefano Stabellini
2021-08-27  1:15     ` Wei Chen
2021-08-27  6:18     ` Jan Beulich
2021-08-27  9:32       ` Wei Chen
2021-08-11 10:24 ` [XEN RFC PATCH 17/40] xen/arm: Introduce DEVICE_TREE_NUMA Kconfig for arm64 Wei Chen
2021-08-19 13:38   ` Julien Grall
2021-08-20  2:30     ` Wei Chen
2021-08-20  8:41       ` Julien Grall
2021-08-20 10:49         ` Wei Chen
2021-08-20 11:28           ` Julien Grall
2021-08-20 12:25             ` Wei Chen
2021-08-11 10:24 ` [XEN RFC PATCH 18/40] xen/arm: Keep memory nodes in dtb for NUMA when boot from EFI Wei Chen
2021-08-19 17:35   ` Julien Grall
2021-08-20  2:18     ` Wei Chen
2021-08-26 23:24   ` Stefano Stabellini
2021-08-27  7:41     ` Julien Grall
2021-08-27 23:10       ` Stefano Stabellini
2021-08-27  9:23     ` Wei Chen
2021-08-11 10:24 ` [XEN RFC PATCH 19/40] xen: fdt: Introduce a helper to check fdt node type Wei Chen
2021-08-25 13:39   ` Julien Grall
2021-08-26  6:00     ` Wei Chen
2021-08-11 10:24 ` [XEN RFC PATCH 20/40] xen/arm: implement node distance helpers for Arm64 Wei Chen
2021-08-26 23:52   ` Stefano Stabellini
2021-08-27  9:30     ` Wei Chen
2021-08-11 10:24 ` [XEN RFC PATCH 21/40] xen/arm: introduce device_tree_numa as a switch for device tree NUMA Wei Chen
2021-08-19 17:45   ` Julien Grall
2021-08-20  2:21     ` Wei Chen
2021-08-11 10:24 ` [XEN RFC PATCH 22/40] xen/arm: introduce a helper to parse device tree processor node Wei Chen
2021-08-19 18:09   ` Julien Grall
2021-08-23  8:42     ` Wei Chen
2021-08-19 18:10   ` Julien Grall
2021-08-23  8:47     ` Wei Chen
2021-08-23 10:59       ` Julien Grall
2021-08-24  4:09         ` Wei Chen
2021-08-19 18:13   ` Julien Grall
2021-08-20  2:23     ` Wei Chen
2021-08-20  8:44       ` Julien Grall
2021-08-20 11:53         ` Wei Chen
2021-08-27  0:06   ` Stefano Stabellini
2021-08-27  9:31     ` Wei Chen
2021-08-11 10:24 ` [XEN RFC PATCH 23/40] xen/arm: introduce a helper to parse device tree memory node Wei Chen
2021-08-25 13:48   ` Julien Grall
2021-08-26  6:35     ` Wei Chen
2021-08-26  8:21       ` Julien Grall
2021-08-26 11:54         ` Wei Chen
2021-08-28  1:06   ` Stefano Stabellini
2021-08-28  3:56     ` Wei Chen
2021-08-28 10:33       ` Julien Grall
2021-08-28 13:58         ` Wei Chen
2021-09-08  7:34           ` Wei Chen
2021-09-08 22:31             ` Stefano Stabellini
2021-09-09  3:54               ` Wei Chen
2021-08-11 10:24 ` [XEN RFC PATCH 24/40] xen/arm: introduce a helper to parse device tree NUMA distance map Wei Chen
2021-08-25 13:56   ` Julien Grall
2021-08-26  7:01     ` Wei Chen
2021-08-31  0:48   ` Stefano Stabellini
2021-08-31 10:17     ` Wei Chen
2021-08-31 21:36       ` Stefano Stabellini
2021-09-01 11:04         ` Wei Chen
2021-09-01 16:21           ` Stefano Stabellini
2021-09-02  2:30             ` Wei Chen
2021-09-02 15:19               ` Stefano Stabellini
2021-09-02  6:00             ` Jan Beulich
2021-09-02 14:14               ` Wei Chen
2021-08-11 10:24 ` [XEN RFC PATCH 25/40] xen/arm: unified entry to parse all NUMA data from device tree Wei Chen
2021-08-31  0:54   ` Stefano Stabellini
2021-08-31 17:47     ` Julien Grall
2021-09-01 18:30       ` Stefano Stabellini
2021-09-02  2:48         ` Wei Chen
2021-08-11 10:24 ` [XEN RFC PATCH 26/40] xen/arm: Add boot and secondary CPU to NUMA system Wei Chen
2021-08-25 16:58   ` Julien Grall
2021-08-26  7:24     ` Wei Chen
2021-08-26  8:49       ` Julien Grall
2021-08-26  9:39         ` Jan Beulich
2021-08-26 12:08           ` Wei Chen
2021-08-26 12:26             ` Jan Beulich
2021-08-11 10:24 ` [XEN RFC PATCH 27/40] xen/arm: build CPU NUMA node map while creating cpu_logical_map Wei Chen
2021-08-25 17:06   ` Julien Grall
2021-08-26  7:26     ` Wei Chen
2021-08-11 10:24 ` [XEN RFC PATCH 28/40] xen/x86: decouple nodes_cover_memory with E820 map Wei Chen
2021-08-31  1:07   ` Stefano Stabellini
2021-08-31 10:19     ` Wei Chen
2021-08-11 10:24 ` [XEN RFC PATCH 29/40] xen/arm: implement Arm arch helpers Arm to get memory map info Wei Chen
2021-08-25 17:09   ` Julien Grall
2021-08-26  7:27     ` Wei Chen
2021-08-11 10:24 ` [XEN RFC PATCH 30/40] xen: move NUMA memory and CPU parsed nodemasks to common Wei Chen
2021-08-25 17:16   ` Julien Grall
2021-08-26  7:29     ` Wei Chen
2021-08-11 10:24 ` [XEN RFC PATCH 31/40] xen/x86: move nodes_cover_memory " Wei Chen
2021-08-31  1:16   ` Stefano Stabellini
2021-08-31 13:43     ` Wei Chen
2021-08-11 10:24 ` [XEN RFC PATCH 32/40] xen/x86: make acpi_scan_nodes to be neutral Wei Chen
2021-08-27 14:08   ` Julien Grall
2021-08-28  2:11     ` Wei Chen
2021-08-11 10:24 ` [XEN RFC PATCH 33/40] xen: export bad_srat and srat_disabled to extern Wei Chen
2021-08-11 10:24 ` [XEN RFC PATCH 34/40] xen: move numa_scan_nodes from x86 to common Wei Chen
2021-08-27 14:14   ` Julien Grall
2021-08-28  2:12     ` Wei Chen
2021-08-31  1:26   ` Stefano Stabellini
2021-08-31 13:43     ` Wei Chen
2021-08-11 10:24 ` [XEN RFC PATCH 35/40] xen: enable numa_scan_nodes for device tree based NUMA Wei Chen
2021-08-27 14:19   ` Julien Grall
2021-08-28  2:13     ` Wei Chen
2021-08-11 10:24 ` [XEN RFC PATCH 36/40] xen/arm: keep guest still be NUMA unware Wei Chen
2021-08-27 14:28   ` Julien Grall
2021-08-28  2:19     ` Wei Chen
2021-08-11 10:24 ` [XEN RFC PATCH 37/40] xen: introduce an arch helper to do NUMA init failed fallback Wei Chen
2021-08-27 14:30   ` Julien Grall
2021-08-28  3:09     ` Wei Chen
2021-08-28  3:45       ` Wei Chen
2021-08-30  9:52         ` Jan Beulich
2021-08-30 10:38           ` Wei Chen
2021-08-11 10:24 ` [XEN RFC PATCH 38/40] xen/arm: enable device tree based NUMA in system init Wei Chen
2021-08-27 14:32   ` Julien Grall
2021-08-28  3:17     ` Wei Chen
2021-08-28 10:45       ` Julien Grall
2021-08-28 14:02         ` Wei Chen
2021-08-31  1:50   ` Stefano Stabellini
2021-08-31 13:43     ` Wei Chen
2021-08-11 10:24 ` [XEN RFC PATCH 39/40] xen/x86: move numa_setup to common to support NUMA switch in command line Wei Chen
2021-08-27 14:37   ` Julien Grall [this message]
2021-08-28  3:22     ` Wei Chen
2021-08-31  1:53   ` Stefano Stabellini
2021-08-31 13:44     ` Wei Chen
2021-08-11 10:24 ` [XEN RFC PATCH 40/40] xen/x86: move dump_numa info hotkey to common Wei Chen
2021-08-11 10:41 ` [XEN RFC PATCH 00/40] Add device tree based NUMA support to Arm64 Jan Beulich
2021-08-13  2:33   ` Wei Chen
2021-08-13  6:53     ` Jan Beulich
2021-08-19 13:42 ` Julien Grall
2021-08-19 14:05   ` Bertrand Marquis
2021-08-19 17:11     ` Julien Grall
2021-08-26  0:09 ` Stefano Stabellini
2021-08-26  7:31   ` Wei Chen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4759ddf5-fabb-ebca-9271-38ed5d69b970@xen.org \
    --to=julien@xen.org \
    --cc=Bertrand.Marquis@arm.com \
    --cc=jbeulich@suse.com \
    --cc=sstabellini@kernel.org \
    --cc=wei.chen@arm.com \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).