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

Ping: [PATCH v2] NUMA: no need for asm/numa.h when !NUMA


  • To: Julien Grall <julien@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Bertrand Marquis <bertrand.marquis@xxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>
  • From: Jan Beulich <jbeulich@xxxxxxxx>
  • Date: Thu, 25 Jan 2024 18:00:53 +0100
  • Autocrypt: addr=jbeulich@xxxxxxxx; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL
  • Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, George Dunlap <george.dunlap@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, Shawn Anastasio <sanastasio@xxxxxxxxxxxxxxxxxxxxx>, Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Thu, 25 Jan 2024 17:01:13 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 08.01.2024 12:30, Jan Beulich wrote:
> There's no point in every architecture carrying the same stubs for the
> case when NUMA isn't enabled (or even supported). Move all of that to
> xen/numa.h; replace explicit uses of asm/numa.h in common code. Make
> inclusion of asm/numa.h dependent upon NUMA=y.
> 
> Drop the no longer applicable "implement NUMA support" comments - in a
> !NUMA section this simply makes no sense.
> 
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>

May I please ask for an Arm ack (or otherwise) here?

Thanks, Jan

> --- a/xen/arch/arm/include/asm/numa.h
> +++ /dev/null
> @@ -1,31 +0,0 @@
> -#ifndef __ARCH_ARM_NUMA_H
> -#define __ARCH_ARM_NUMA_H
> -
> -#include <xen/mm.h>
> -
> -typedef u8 nodeid_t;
> -
> -#ifndef CONFIG_NUMA
> -
> -/* Fake one node for now. See also node_online_map. */
> -#define cpu_to_node(cpu) 0
> -#define node_to_cpumask(node)   (cpu_online_map)
> -
> -/* XXX: implement NUMA support */
> -#define node_spanned_pages(nid) (max_page - mfn_x(first_valid_mfn))
> -#define node_start_pfn(nid) (mfn_x(first_valid_mfn))
> -#define __node_distance(a, b) (20)
> -
> -#endif
> -
> -#define arch_want_default_dmazone() (false)
> -
> -#endif /* __ARCH_ARM_NUMA_H */
> -/*
> - * Local variables:
> - * mode: C
> - * c-file-style: "BSD"
> - * c-basic-offset: 4
> - * indent-tabs-mode: nil
> - * End:
> - */
> --- a/xen/arch/arm/smpboot.c
> +++ b/xen/arch/arm/smpboot.c
> @@ -42,7 +42,7 @@ integer_param("maxcpus", max_cpus);
>  /* CPU logical map: map xen cpuid to an MPIDR */
>  register_t __cpu_logical_map[NR_CPUS] = { [0 ... NR_CPUS-1] = MPIDR_INVALID 
> };
>  
> -/* Fake one node for now. See also asm/numa.h */
> +/* Fake one node for now. See also xen/numa.h */
>  nodemask_t __read_mostly node_online_map = { { [0] = 1UL } };
>  
>  /* Xen stack for bringing up the first CPU. */
> --- a/xen/arch/ppc/include/asm/numa.h
> +++ /dev/null
> @@ -1,20 +0,0 @@
> -#ifndef __ASM_PPC_NUMA_H__
> -#define __ASM_PPC_NUMA_H__
> -
> -#include <xen/types.h>
> -#include <xen/mm.h>
> -
> -typedef uint8_t nodeid_t;
> -
> -/* Fake one node for now. See also node_online_map. */
> -#define cpu_to_node(cpu) 0
> -#define node_to_cpumask(node)   (cpu_online_map)
> -
> -/* XXX: implement NUMA support */
> -#define node_spanned_pages(nid) (max_page - mfn_x(first_valid_mfn))
> -#define node_start_pfn(nid) (mfn_x(first_valid_mfn))
> -#define __node_distance(a, b) (20)
> -
> -#define arch_want_default_dmazone() (false)
> -
> -#endif /* __ASM_PPC_NUMA_H__ */
> --- a/xen/common/page_alloc.c
> +++ b/xen/common/page_alloc.c
> @@ -138,7 +138,6 @@
>  #include <xen/spinlock.h>
>  
>  #include <asm/flushtlb.h>
> -#include <asm/numa.h>
>  #include <asm/page.h>
>  
>  #include <public/sysctl.h>
> --- a/xen/common/sysctl.c
> +++ b/xen/common/sysctl.c
> @@ -22,8 +22,8 @@
>  #include <asm/current.h>
>  #include <xen/hypercall.h>
>  #include <public/sysctl.h>
> -#include <asm/numa.h>
>  #include <xen/nodemask.h>
> +#include <xen/numa.h>
>  #include <xsm/xsm.h>
>  #include <xen/pmstat.h>
>  #include <xen/livepatch.h>
> --- a/xen/include/xen/domain.h
> +++ b/xen/include/xen/domain.h
> @@ -2,6 +2,7 @@
>  #ifndef __XEN_DOMAIN_H__
>  #define __XEN_DOMAIN_H__
>  
> +#include <xen/numa.h>
>  #include <xen/types.h>
>  
>  #include <public/xen.h>
> @@ -12,7 +13,6 @@ struct guest_area {
>  };
>  
>  #include <asm/domain.h>
> -#include <asm/numa.h>
>  
>  typedef union {
>      struct vcpu_guest_context *nat;
> --- a/xen/include/xen/numa.h
> +++ b/xen/include/xen/numa.h
> @@ -2,7 +2,13 @@
>  #define _XEN_NUMA_H
>  
>  #include <xen/mm-frame.h>
> +
> +#ifdef CONFIG_NUMA
> +#include <xen/pdx.h>
>  #include <asm/numa.h>
> +#else
> +typedef uint8_t nodeid_t;
> +#endif
>  
>  #define NUMA_NO_NODE     0xFF
>  #define NUMA_NO_DISTANCE 0xFF
> @@ -108,8 +114,18 @@ extern void numa_set_processor_nodes_par
>  
>  #else
>  
> +/* Fake one node for now. See also node_online_map. */
> +#define cpu_to_node(cpu) 0
> +#define node_to_cpumask(node)   cpu_online_map
> +
> +#define arch_want_default_dmazone() false
> +
>  extern mfn_t first_valid_mfn;
>  
> +#define node_spanned_pages(nid) (max_page - mfn_x(first_valid_mfn))
> +#define node_start_pfn(nid) mfn_x(first_valid_mfn)
> +#define __node_distance(a, b) 20
> +
>  static inline nodeid_t mfn_to_nid(mfn_t mfn)
>  {
>      return 0;
> --- a/xen/include/xen/pci.h
> +++ b/xen/include/xen/pci.h
> @@ -11,10 +11,10 @@
>  #include <xen/list.h>
>  #include <xen/spinlock.h>
>  #include <xen/irq.h>
> +#include <xen/numa.h>
>  #include <xen/pci_regs.h>
>  #include <xen/pfn.h>
>  #include <asm/device.h>
> -#include <asm/numa.h>
>  
>  /*
>   * The PCI interface treats multi-function devices as independent




 


Rackspace

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