From: Wei Chen <Wei.Chen@arm.com>
To: Julien Grall <julien@xen.org>,
"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
"sstabellini@kernel.org" <sstabellini@kernel.org>,
Jan Beulich <jbeulich@suse.com>
Cc: Bertrand Marquis <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: Sat, 28 Aug 2021 03:22:57 +0000 [thread overview]
Message-ID: <DB9PR08MB6857330F8618D32218F711309EC99@DB9PR08MB6857.eurprd08.prod.outlook.com> (raw)
In-Reply-To: <4759ddf5-fabb-ebca-9271-38ed5d69b970@xen.org>
Hi Julien,
> -----Original Message-----
> From: Julien Grall <julien@xen.org>
> Sent: 2021年8月27日 22:38
> To: Wei Chen <Wei.Chen@arm.com>; xen-devel@lists.xenproject.org;
> sstabellini@kernel.org; jbeulich@suse.com
> Cc: Bertrand Marquis <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
>
> 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.
>
Ok, I will update the relate document in next version.
> > +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.
>
Yes, I agree. I would consider a proper way to address it in next version.
If x86 maintainers can give some background of these two options would be
better.
> > + 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
next prev parent reply other threads:[~2021-08-28 3:23 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
2021-08-28 3:22 ` Wei Chen [this message]
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=DB9PR08MB6857330F8618D32218F711309EC99@DB9PR08MB6857.eurprd08.prod.outlook.com \
--to=wei.chen@arm.com \
--cc=Bertrand.Marquis@arm.com \
--cc=jbeulich@suse.com \
--cc=julien@xen.org \
--cc=sstabellini@kernel.org \
--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).