From: Stefano Stabellini <sstabellini@kernel.org>
To: Wei Chen <wei.chen@arm.com>
Cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org,
julien@xen.org, Bertrand.Marquis@arm.com
Subject: Re: [PATCH 07/37] xen/x86: use paddr_t for addresses in NUMA node structure
Date: Thu, 23 Sep 2021 17:11:51 -0700 (PDT) [thread overview]
Message-ID: <alpine.DEB.2.21.2109231709360.17979@sstabellini-ThinkPad-T480s> (raw)
In-Reply-To: <20210923120236.3692135-8-wei.chen@arm.com>
On Thu, 23 Sep 2021, Wei Chen wrote:
> NUMA node structure "struct node" is using u64 as node memory
> range. In order to make other architectures can reuse this
> NUMA node relative code, we replace the u64 to paddr_t. And
> use pfn_to_paddr and paddr_to_pfn to replace explicit shift
> operations. The relate PRIx64 in print messages have been
> replaced by PRIpaddr at the same time.
>
> Signed-off-by: Wei Chen <wei.chen@arm.com>
> ---
> xen/arch/x86/numa.c | 32 +++++++++++++++++---------------
> xen/arch/x86/srat.c | 26 +++++++++++++-------------
> xen/include/asm-x86/numa.h | 8 ++++----
> 3 files changed, 34 insertions(+), 32 deletions(-)
>
> diff --git a/xen/arch/x86/numa.c b/xen/arch/x86/numa.c
> index 1fabbe8281..6337bbdf31 100644
> --- a/xen/arch/x86/numa.c
> +++ b/xen/arch/x86/numa.c
> @@ -165,12 +165,12 @@ int __init compute_hash_shift(struct node *nodes, int numnodes,
> return shift;
> }
> /* initialize NODE_DATA given nodeid and start/end */
> -void __init setup_node_bootmem(nodeid_t nodeid, u64 start, u64 end)
> -{
> +void __init setup_node_bootmem(nodeid_t nodeid, paddr_t start, paddr_t end)
> +{
> unsigned long start_pfn, end_pfn;
>
> - start_pfn = start >> PAGE_SHIFT;
> - end_pfn = end >> PAGE_SHIFT;
> + start_pfn = paddr_to_pfn(start);
> + end_pfn = paddr_to_pfn(end);
>
> NODE_DATA(nodeid)->node_start_pfn = start_pfn;
> NODE_DATA(nodeid)->node_spanned_pages = end_pfn - start_pfn;
> @@ -201,11 +201,12 @@ void __init numa_init_array(void)
> static int numa_fake __initdata = 0;
>
> /* Numa emulation */
> -static int __init numa_emulation(u64 start_pfn, u64 end_pfn)
> +static int __init numa_emulation(unsigned long start_pfn,
> + unsigned long end_pfn)
Why not changing numa_emulation to take paddr_t too?
> {
> int i;
> struct node nodes[MAX_NUMNODES];
> - u64 sz = ((end_pfn - start_pfn)<<PAGE_SHIFT) / numa_fake;
> + u64 sz = pfn_to_paddr(end_pfn - start_pfn) / numa_fake;
>
> /* Kludge needed for the hash function */
> if ( hweight64(sz) > 1 )
> @@ -221,9 +222,9 @@ static int __init numa_emulation(u64 start_pfn, u64 end_pfn)
> memset(&nodes,0,sizeof(nodes));
> for ( i = 0; i < numa_fake; i++ )
> {
> - nodes[i].start = (start_pfn<<PAGE_SHIFT) + i*sz;
> + nodes[i].start = pfn_to_paddr(start_pfn) + i*sz;
> if ( i == numa_fake - 1 )
> - sz = (end_pfn<<PAGE_SHIFT) - nodes[i].start;
> + sz = pfn_to_paddr(end_pfn) - nodes[i].start;
> nodes[i].end = nodes[i].start + sz;
> printk(KERN_INFO "Faking node %d at %"PRIx64"-%"PRIx64" (%"PRIu64"MB)\n",
> i,
> @@ -249,24 +250,26 @@ static int __init numa_emulation(u64 start_pfn, u64 end_pfn)
> void __init numa_initmem_init(unsigned long start_pfn, unsigned long end_pfn)
same here
> {
> int i;
> + paddr_t start, end;
>
> #ifdef CONFIG_NUMA_EMU
> if ( numa_fake && !numa_emulation(start_pfn, end_pfn) )
> return;
> #endif
>
> + start = pfn_to_paddr(start_pfn);
> + end = pfn_to_paddr(end_pfn);
> +
> #ifdef CONFIG_ACPI_NUMA
> - if ( !numa_off && !acpi_scan_nodes((u64)start_pfn << PAGE_SHIFT,
> - (u64)end_pfn << PAGE_SHIFT) )
> + if ( !numa_off && !acpi_scan_nodes(start, end) )
> return;
> #endif
>
> printk(KERN_INFO "%s\n",
> numa_off ? "NUMA turned off" : "No NUMA configuration found");
>
> - printk(KERN_INFO "Faking a node at %016"PRIx64"-%016"PRIx64"\n",
> - (u64)start_pfn << PAGE_SHIFT,
> - (u64)end_pfn << PAGE_SHIFT);
> + printk(KERN_INFO "Faking a node at %016"PRIpaddr"-%016"PRIpaddr"\n",
> + start, end);
> /* setup dummy node covering all memory */
> memnode_shift = BITS_PER_LONG - 1;
> memnodemap = _memnodemap;
> @@ -279,8 +282,7 @@ void __init numa_initmem_init(unsigned long start_pfn, unsigned long end_pfn)
> for ( i = 0; i < nr_cpu_ids; i++ )
> numa_set_node(i, 0);
> cpumask_copy(&node_to_cpumask[0], cpumask_of(0));
> - setup_node_bootmem(0, (u64)start_pfn << PAGE_SHIFT,
> - (u64)end_pfn << PAGE_SHIFT);
> + setup_node_bootmem(0, start, end);
> }
>
> void numa_add_cpu(int cpu)
> diff --git a/xen/arch/x86/srat.c b/xen/arch/x86/srat.c
> index 6b77b98201..7d20d7f222 100644
> --- a/xen/arch/x86/srat.c
> +++ b/xen/arch/x86/srat.c
> @@ -104,7 +104,7 @@ nodeid_t setup_node(unsigned pxm)
> return node;
> }
>
> -int valid_numa_range(u64 start, u64 end, nodeid_t node)
> +int valid_numa_range(paddr_t start, paddr_t end, nodeid_t node)
> {
> int i;
>
> @@ -119,7 +119,7 @@ int valid_numa_range(u64 start, u64 end, nodeid_t node)
> return 0;
> }
>
> -static __init int conflicting_memblks(u64 start, u64 end)
> +static __init int conflicting_memblks(paddr_t start, paddr_t end)
> {
> int i;
>
> @@ -135,7 +135,7 @@ static __init int conflicting_memblks(u64 start, u64 end)
> return -1;
> }
>
> -static __init void cutoff_node(int i, u64 start, u64 end)
> +static __init void cutoff_node(int i, paddr_t start, paddr_t end)
> {
> struct node *nd = &nodes[i];
> if (nd->start < start) {
> @@ -275,7 +275,7 @@ acpi_numa_processor_affinity_init(const struct acpi_srat_cpu_affinity *pa)
> void __init
> acpi_numa_memory_affinity_init(const struct acpi_srat_mem_affinity *ma)
> {
> - u64 start, end;
> + paddr_t start, end;
> unsigned pxm;
> nodeid_t node;
> int i;
> @@ -318,7 +318,7 @@ acpi_numa_memory_affinity_init(const struct acpi_srat_mem_affinity *ma)
> bool mismatch = !(ma->flags & ACPI_SRAT_MEM_HOT_PLUGGABLE) !=
> !test_bit(i, memblk_hotplug);
>
> - printk("%sSRAT: PXM %u (%"PRIx64"-%"PRIx64") overlaps with itself (%"PRIx64"-%"PRIx64")\n",
> + printk("%sSRAT: PXM %u (%"PRIpaddr"-%"PRIpaddr") overlaps with itself (%"PRIpaddr"-%"PRIpaddr")\n",
> mismatch ? KERN_ERR : KERN_WARNING, pxm, start, end,
> node_memblk_range[i].start, node_memblk_range[i].end);
> if (mismatch) {
> @@ -327,7 +327,7 @@ acpi_numa_memory_affinity_init(const struct acpi_srat_mem_affinity *ma)
> }
> } else {
> printk(KERN_ERR
> - "SRAT: PXM %u (%"PRIx64"-%"PRIx64") overlaps with PXM %u (%"PRIx64"-%"PRIx64")\n",
> + "SRAT: PXM %u (%"PRIpaddr"-%"PRIpaddr") overlaps with PXM %u (%"PRIpaddr"-%"PRIpaddr")\n",
> pxm, start, end, node_to_pxm(memblk_nodeid[i]),
> node_memblk_range[i].start, node_memblk_range[i].end);
> bad_srat();
> @@ -346,7 +346,7 @@ acpi_numa_memory_affinity_init(const struct acpi_srat_mem_affinity *ma)
> nd->end = end;
> }
> }
> - printk(KERN_INFO "SRAT: Node %u PXM %u %"PRIx64"-%"PRIx64"%s\n",
> + printk(KERN_INFO "SRAT: Node %u PXM %u %"PRIpaddr"-%"PRIpaddr"%s\n",
> node, pxm, start, end,
> ma->flags & ACPI_SRAT_MEM_HOT_PLUGGABLE ? " (hotplug)" : "");
>
> @@ -369,7 +369,7 @@ static int __init nodes_cover_memory(void)
>
> for (i = 0; i < e820.nr_map; i++) {
> int j, found;
> - unsigned long long start, end;
> + paddr_t start, end;
>
> if (e820.map[i].type != E820_RAM) {
> continue;
> @@ -396,7 +396,7 @@ static int __init nodes_cover_memory(void)
>
> if (start < end) {
> printk(KERN_ERR "SRAT: No PXM for e820 range: "
> - "%016Lx - %016Lx\n", start, end);
> + "%"PRIpaddr" - %"PRIpaddr"\n", start, end);
> return 0;
> }
> }
> @@ -432,7 +432,7 @@ static int __init srat_parse_region(struct acpi_subtable_header *header,
> return 0;
> }
>
> -void __init srat_parse_regions(u64 addr)
> +void __init srat_parse_regions(paddr_t addr)
> {
> u64 mask;
> unsigned int i;
> @@ -441,7 +441,7 @@ void __init srat_parse_regions(u64 addr)
> acpi_table_parse(ACPI_SIG_SRAT, acpi_parse_srat))
> return;
>
> - srat_region_mask = pdx_init_mask(addr);
> + srat_region_mask = pdx_init_mask((u64)addr);
> acpi_table_parse_srat(ACPI_SRAT_TYPE_MEMORY_AFFINITY,
> srat_parse_region, 0);
>
> @@ -457,7 +457,7 @@ void __init srat_parse_regions(u64 addr)
> }
>
> /* Use the information discovered above to actually set up the nodes. */
> -int __init acpi_scan_nodes(u64 start, u64 end)
> +int __init acpi_scan_nodes(paddr_t start, paddr_t end)
> {
> int i;
> nodemask_t all_nodes_parsed;
> @@ -489,7 +489,7 @@ int __init acpi_scan_nodes(u64 start, u64 end)
> /* Finally register nodes */
> for_each_node_mask(i, all_nodes_parsed)
> {
> - u64 size = nodes[i].end - nodes[i].start;
> + paddr_t size = nodes[i].end - nodes[i].start;
> if ( size == 0 )
> printk(KERN_WARNING "SRAT: Node %u has no memory. "
> "BIOS Bug or mis-configured hardware?\n", i);
> diff --git a/xen/include/asm-x86/numa.h b/xen/include/asm-x86/numa.h
> index 8060cbf3f4..50cfd8e7ef 100644
> --- a/xen/include/asm-x86/numa.h
> +++ b/xen/include/asm-x86/numa.h
> @@ -16,7 +16,7 @@ extern cpumask_t node_to_cpumask[];
> #define node_to_cpumask(node) (node_to_cpumask[node])
>
> struct node {
> - u64 start,end;
> + paddr_t start,end;
> };
>
> extern int compute_hash_shift(struct node *nodes, int numnodes,
> @@ -36,7 +36,7 @@ extern void numa_set_node(int cpu, nodeid_t node);
> extern nodeid_t setup_node(unsigned int pxm);
> extern void srat_detect_node(int cpu);
>
> -extern void setup_node_bootmem(nodeid_t nodeid, u64 start, u64 end);
> +extern void setup_node_bootmem(nodeid_t nodeid, paddr_t start, paddr_t end);
> extern nodeid_t apicid_to_node[];
> extern void init_cpu_to_node(void);
>
> @@ -73,9 +73,9 @@ static inline __attribute__((pure)) nodeid_t phys_to_nid(paddr_t addr)
> #define node_end_pfn(nid) (NODE_DATA(nid)->node_start_pfn + \
> NODE_DATA(nid)->node_spanned_pages)
>
> -extern int valid_numa_range(u64 start, u64 end, nodeid_t node);
> +extern int valid_numa_range(paddr_t start, paddr_t end, nodeid_t node);
>
> -void srat_parse_regions(u64 addr);
> +void srat_parse_regions(paddr_t addr);
> extern u8 __node_distance(nodeid_t a, nodeid_t b);
> unsigned int arch_get_dma_bitsize(void);
> unsigned int arch_have_default_dmazone(void);
> --
> 2.25.1
>
next prev parent reply other threads:[~2021-09-24 0:12 UTC|newest]
Thread overview: 192+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-23 12:01 [PATCH 00/37] Add device tree based NUMA support to Arm Wei Chen
2021-09-23 12:02 ` [PATCH 01/37] xen/arm: Print a 64-bit number in hex from early uart Wei Chen
2021-09-23 12:02 ` [PATCH 02/37] xen: introduce a Kconfig option to configure NUMA nodes number Wei Chen
2021-09-23 23:45 ` Stefano Stabellini
2021-09-24 1:24 ` Wei Chen
2021-09-24 8:55 ` Jan Beulich
2021-09-24 10:33 ` Wei Chen
2021-09-24 10:47 ` Jan Beulich
2021-09-23 12:02 ` [PATCH 03/37] xen/x86: Initialize memnodemapsize while faking NUMA node Wei Chen
2021-09-24 8:57 ` Jan Beulich
2021-09-24 10:34 ` Wei Chen
2021-09-23 12:02 ` [PATCH 04/37] xen: introduce an arch helper for default dma zone status Wei Chen
2021-09-23 23:55 ` Stefano Stabellini
2021-09-24 1:50 ` Wei Chen
2022-01-17 16:10 ` Jan Beulich
2022-01-18 7:51 ` Wei Chen
2022-01-18 8:16 ` Jan Beulich
2022-01-18 9:20 ` Wei Chen
2022-01-18 14:16 ` Jan Beulich
2022-01-19 2:49 ` Wei Chen
2022-01-19 7:50 ` Jan Beulich
2022-01-19 8:33 ` Wei Chen
2021-09-23 12:02 ` [PATCH 05/37] xen: decouple NUMA from ACPI in Kconfig Wei Chen
2021-09-23 12:02 ` [PATCH 06/37] xen/arm: use !CONFIG_NUMA to keep fake NUMA API Wei Chen
2021-09-24 0:05 ` Stefano Stabellini
2021-09-24 10:21 ` Wei Chen
2021-09-23 12:02 ` [PATCH 07/37] xen/x86: use paddr_t for addresses in NUMA node structure Wei Chen
2021-09-24 0:11 ` Stefano Stabellini [this message]
2021-09-24 0:13 ` Stefano Stabellini
2021-09-24 3:00 ` Wei Chen
2022-01-18 15:22 ` Jan Beulich
2022-01-19 6:33 ` Wei Chen
2022-01-19 7:55 ` Jan Beulich
2022-01-19 8:36 ` Wei Chen
2021-09-23 12:02 ` [PATCH 08/37] xen/x86: add detection of discontinous node memory range Wei Chen
2021-09-24 0:25 ` Stefano Stabellini
2021-09-24 4:28 ` Wei Chen
2021-09-24 19:52 ` Stefano Stabellini
2021-09-26 10:11 ` Wei Chen
2021-09-27 3:13 ` Stefano Stabellini
2021-09-27 5:05 ` Stefano Stabellini
2021-09-27 9:50 ` Wei Chen
2021-09-27 17:19 ` Stefano Stabellini
2021-09-28 4:41 ` Wei Chen
2021-09-28 4:59 ` Stefano Stabellini
2022-01-18 16:13 ` Jan Beulich
2022-01-19 7:33 ` Wei Chen
2022-01-19 8:01 ` Jan Beulich
2022-01-19 8:24 ` Wei Chen
2021-09-23 12:02 ` [PATCH 09/37] xen/x86: introduce two helpers to access memory hotplug end Wei Chen
2021-09-24 0:29 ` Stefano Stabellini
2021-09-24 4:21 ` Wei Chen
2022-01-24 16:24 ` Jan Beulich
2022-01-26 7:53 ` Wei Chen
2021-09-23 12:02 ` [PATCH 10/37] xen/x86: use helpers to access/update mem_hotplug Wei Chen
2021-09-24 0:31 ` Stefano Stabellini
2021-09-24 4:29 ` Wei Chen
2022-01-24 16:29 ` Jan Beulich
2022-01-26 7:58 ` Wei Chen
2021-09-23 12:02 ` [PATCH 11/37] xen/x86: abstract neutral code from acpi_numa_memory_affinity_init Wei Chen
2021-09-24 0:38 ` Stefano Stabellini
2022-01-24 16:50 ` Jan Beulich
2022-01-26 10:39 ` Wei Chen
2021-09-23 12:02 ` [PATCH 12/37] xen/x86: decouple nodes_cover_memory from E820 map Wei Chen
2021-09-24 0:39 ` Stefano Stabellini
2022-01-24 16:59 ` Jan Beulich
2022-01-27 8:03 ` Wei Chen
2022-01-27 8:08 ` Jan Beulich
2022-01-27 9:03 ` Wei Chen
2022-01-27 9:22 ` Jan Beulich
2022-01-27 9:27 ` Wei Chen
2021-09-23 12:02 ` [PATCH 13/37] xen/x86: decouple processor_nodes_parsed from acpi numa functions Wei Chen
2021-09-24 0:40 ` Stefano Stabellini
2022-01-25 9:49 ` Jan Beulich
2022-01-27 8:06 ` Wei Chen
2021-09-23 12:02 ` [PATCH 14/37] xen/x86: use name fw_numa to replace acpi_numa Wei Chen
2021-09-24 0:40 ` Stefano Stabellini
2022-01-25 10:12 ` Jan Beulich
2022-01-27 8:09 ` Wei Chen
2021-09-23 12:02 ` [PATCH 15/37] xen/x86: rename acpi_scan_nodes to numa_scan_nodes Wei Chen
2021-09-24 0:40 ` Stefano Stabellini
2022-01-25 10:17 ` Jan Beulich
2022-01-27 8:14 ` Wei Chen
2021-09-23 12:02 ` [PATCH 16/37] xen/x86: export srat_bad to external Wei Chen
2021-09-24 0:41 ` Stefano Stabellini
2022-01-25 10:22 ` Jan Beulich
2022-01-27 8:35 ` Wei Chen
2022-01-27 8:37 ` Jan Beulich
2022-01-27 8:47 ` Wei Chen
2021-09-23 12:02 ` [PATCH 17/37] xen/x86: use CONFIG_NUMA to gate numa_scan_nodes Wei Chen
2021-09-24 0:41 ` Stefano Stabellini
2022-01-25 10:26 ` Jan Beulich
2022-01-27 8:37 ` Wei Chen
2021-09-23 12:02 ` [PATCH 18/37] xen: move NUMA common code from x86 to common Wei Chen
2021-09-23 12:02 ` [PATCH 19/37] xen/x86: promote VIRTUAL_BUG_ON to ASSERT in Wei Chen
2022-01-17 16:21 ` Jan Beulich
2022-01-18 7:52 ` Wei Chen
2021-09-23 12:02 ` [PATCH 20/37] xen: introduce CONFIG_EFI to stub API for non-EFI architecture Wei Chen
2021-09-24 1:15 ` Stefano Stabellini
2021-09-24 4:34 ` Wei Chen
2021-09-24 7:58 ` Jan Beulich
2021-09-24 10:31 ` Wei Chen
2021-09-24 10:49 ` Jan Beulich
2021-09-26 10:25 ` Wei Chen
2021-09-27 10:28 ` Wei Chen
2021-09-28 0:59 ` Stefano Stabellini
2021-09-28 4:16 ` Wei Chen
2021-09-28 5:01 ` Stefano Stabellini
2021-09-28 8:02 ` Jan Beulich
2021-10-03 23:28 ` Wei Chen
2022-01-25 10:34 ` Jan Beulich
2022-01-27 8:44 ` Wei Chen
2022-01-27 8:51 ` Wei Chen
2022-01-27 9:00 ` Jan Beulich
2022-01-27 9:09 ` Wei Chen
2022-01-27 9:16 ` Jan Beulich
2022-01-27 9:25 ` Wei Chen
2022-01-27 9:27 ` Jan Beulich
2022-01-27 10:00 ` Julien Grall
2022-01-28 4:35 ` Wei Chen
2021-09-23 12:02 ` [PATCH 21/37] xen/arm: Keep memory nodes in dtb for NUMA when boot from EFI Wei Chen
2021-09-24 1:23 ` Stefano Stabellini
2021-09-24 4:36 ` Wei Chen
2022-01-25 10:38 ` Jan Beulich
2022-01-27 8:45 ` Wei Chen
2021-09-23 12:02 ` [PATCH 22/37] xen/arm: use NR_MEM_BANKS to override default NR_NODE_MEMBLKS Wei Chen
2021-09-24 1:34 ` Stefano Stabellini
2021-09-26 13:13 ` Wei Chen
2021-09-27 3:25 ` Stefano Stabellini
2021-09-27 4:18 ` Wei Chen
2021-09-27 4:59 ` Stefano Stabellini
2021-09-27 6:25 ` Julien Grall
2021-09-27 6:46 ` Wei Chen
2021-09-27 6:53 ` Wei Chen
2021-09-27 7:35 ` Julien Grall
2021-09-27 10:21 ` Wei Chen
2021-09-27 10:39 ` Julien Grall
2021-09-27 16:58 ` Stefano Stabellini
2021-09-28 2:57 ` Wei Chen
2021-09-23 12:02 ` [PATCH 23/37] xen/arm: implement node distance helpers for Arm Wei Chen
2021-09-24 1:46 ` Stefano Stabellini
2021-09-24 4:41 ` Wei Chen
2021-09-24 19:36 ` Stefano Stabellini
2021-09-26 10:15 ` Wei Chen
2021-09-23 12:02 ` [PATCH 24/37] xen/arm: implement two arch helpers to get memory map info Wei Chen
2021-09-24 2:06 ` Stefano Stabellini
2021-09-24 4:42 ` Wei Chen
2021-09-23 12:02 ` [PATCH 25/37] xen/arm: implement bad_srat for Arm NUMA initialization Wei Chen
2021-09-24 2:09 ` Stefano Stabellini
2021-09-24 4:45 ` Wei Chen
2021-09-24 8:07 ` Jan Beulich
2021-09-24 19:33 ` Stefano Stabellini
2021-09-23 12:02 ` [PATCH 26/37] xen/arm: build NUMA cpu_to_node map in dt_smp_init_cpus Wei Chen
2021-09-24 2:26 ` Stefano Stabellini
2021-09-24 4:25 ` Wei Chen
2021-09-23 12:02 ` [PATCH 27/37] xen/arm: Add boot and secondary CPU to NUMA system Wei Chen
2021-09-23 12:02 ` [PATCH 28/37] xen/arm: stub memory hotplug access helpers for Arm Wei Chen
2021-09-24 2:33 ` Stefano Stabellini
2021-09-24 4:26 ` Wei Chen
2021-09-23 12:02 ` [PATCH 29/37] xen/arm: introduce a helper to parse device tree processor node Wei Chen
2021-09-24 2:44 ` Stefano Stabellini
2021-09-24 4:46 ` Wei Chen
2021-09-23 12:02 ` [PATCH 30/37] xen/arm: introduce a helper to parse device tree memory node Wei Chen
2021-09-24 3:05 ` Stefano Stabellini
2021-09-24 7:54 ` Wei Chen
2021-09-23 12:02 ` [PATCH 31/37] xen/arm: introduce a helper to parse device tree NUMA distance map Wei Chen
2021-09-24 3:05 ` Stefano Stabellini
2021-09-24 5:23 ` Wei Chen
2021-09-23 12:02 ` [PATCH 32/37] xen/arm: unified entry to parse all NUMA data from device tree Wei Chen
2021-09-24 3:16 ` Stefano Stabellini
2021-09-24 7:58 ` Wei Chen
2021-09-24 19:42 ` Stefano Stabellini
2021-09-23 12:02 ` [PATCH 33/37] xen/arm: keep guest still be NUMA unware Wei Chen
2021-09-24 3:19 ` Stefano Stabellini
2021-09-24 10:23 ` Wei Chen
2021-09-23 12:02 ` [PATCH 34/37] xen/arm: enable device tree based NUMA in system init Wei Chen
2021-09-24 3:28 ` Stefano Stabellini
2021-09-24 9:52 ` Wei Chen
2021-09-23 12:02 ` [PATCH 35/37] xen/arm: use CONFIG_NUMA to gate node_online_map in smpboot Wei Chen
2021-09-23 12:02 ` [PATCH 36/37] xen/arm: Provide Kconfig options for Arm to enable NUMA Wei Chen
2021-09-24 3:31 ` Stefano Stabellini
2021-09-24 10:13 ` Wei Chen
2021-09-24 19:39 ` Stefano Stabellini
2021-09-27 8:33 ` Jan Beulich
2021-09-27 8:45 ` Julien Grall
2021-09-27 9:17 ` Jan Beulich
2021-09-27 17:17 ` Stefano Stabellini
2021-09-28 2:59 ` Wei Chen
2021-09-28 3:30 ` Stefano Stabellini
2021-09-24 10:25 ` Jan Beulich
2021-09-24 10:37 ` Wei Chen
2021-09-23 12:02 ` [PATCH 37/37] docs: update numa command line to support Arm 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=alpine.DEB.2.21.2109231709360.17979@sstabellini-ThinkPad-T480s \
--to=sstabellini@kernel.org \
--cc=Bertrand.Marquis@arm.com \
--cc=julien@xen.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).