LCOV - code coverage report
Current view: top level - arch/x86/include/asm - numa.h (source / functions) Hit Total Coverage
Test: landlock.info Lines: 2 4 50.0 %
Date: 2021-04-22 12:43:58 Functions: 0 0 -

          Line data    Source code
       1             : /* SPDX-License-Identifier: GPL-2.0 */
       2             : #ifndef _ASM_X86_NUMA_H
       3             : #define _ASM_X86_NUMA_H
       4             : 
       5             : #include <linux/nodemask.h>
       6             : #include <linux/errno.h>
       7             : 
       8             : #include <asm/topology.h>
       9             : #include <asm/apicdef.h>
      10             : 
      11             : #ifdef CONFIG_NUMA
      12             : 
      13             : #define NR_NODE_MEMBLKS         (MAX_NUMNODES*2)
      14             : 
      15             : /*
      16             :  * Too small node sizes may confuse the VM badly. Usually they
      17             :  * result from BIOS bugs. So dont recognize nodes as standalone
      18             :  * NUMA entities that have less than this amount of RAM listed:
      19             :  */
      20             : #define NODE_MIN_SIZE (4*1024*1024)
      21             : 
      22             : extern int numa_off;
      23             : 
      24             : /*
      25             :  * __apicid_to_node[] stores the raw mapping between physical apicid and
      26             :  * node and is used to initialize cpu_to_node mapping.
      27             :  *
      28             :  * The mapping may be overridden by apic->numa_cpu_node() on 32bit and thus
      29             :  * should be accessed by the accessors - set_apicid_to_node() and
      30             :  * numa_cpu_node().
      31             :  */
      32             : extern s16 __apicid_to_node[MAX_LOCAL_APIC];
      33             : extern nodemask_t numa_nodes_parsed __initdata;
      34             : 
      35             : extern int __init numa_add_memblk(int nodeid, u64 start, u64 end);
      36             : extern void __init numa_set_distance(int from, int to, int distance);
      37             : 
      38       32768 : static inline void set_apicid_to_node(int apicid, s16 node)
      39             : {
      40       32768 :         __apicid_to_node[apicid] = node;
      41             : }
      42             : 
      43             : extern int numa_cpu_node(int cpu);
      44             : 
      45             : #else   /* CONFIG_NUMA */
      46             : static inline void set_apicid_to_node(int apicid, s16 node)
      47             : {
      48             : }
      49             : 
      50             : static inline int numa_cpu_node(int cpu)
      51             : {
      52             :         return NUMA_NO_NODE;
      53             : }
      54             : #endif  /* CONFIG_NUMA */
      55             : 
      56             : #ifdef CONFIG_X86_32
      57             : # include <asm/numa_32.h>
      58             : #endif
      59             : 
      60             : #ifdef CONFIG_NUMA
      61             : extern void numa_set_node(int cpu, int node);
      62             : extern void numa_clear_node(int cpu);
      63             : extern void __init init_cpu_to_node(void);
      64             : extern void numa_add_cpu(int cpu);
      65             : extern void numa_remove_cpu(int cpu);
      66             : extern void init_gi_nodes(void);
      67             : #else   /* CONFIG_NUMA */
      68             : static inline void numa_set_node(int cpu, int node)     { }
      69             : static inline void numa_clear_node(int cpu)             { }
      70             : static inline void init_cpu_to_node(void)               { }
      71             : static inline void numa_add_cpu(int cpu)                { }
      72             : static inline void numa_remove_cpu(int cpu)             { }
      73             : static inline void init_gi_nodes(void)                  { }
      74             : #endif  /* CONFIG_NUMA */
      75             : 
      76             : #ifdef CONFIG_DEBUG_PER_CPU_MAPS
      77             : void debug_cpumask_set_cpu(int cpu, int node, bool enable);
      78             : #endif
      79             : 
      80             : #ifdef CONFIG_NUMA_EMU
      81             : #define FAKE_NODE_MIN_SIZE      ((u64)32 << 20)
      82             : #define FAKE_NODE_MIN_HASH_MASK (~(FAKE_NODE_MIN_SIZE - 1UL))
      83             : int numa_emu_cmdline(char *str);
      84             : #else /* CONFIG_NUMA_EMU */
      85           0 : static inline int numa_emu_cmdline(char *str)
      86             : {
      87           0 :         return -EINVAL;
      88             : }
      89             : #endif /* CONFIG_NUMA_EMU */
      90             : 
      91             : #endif  /* _ASM_X86_NUMA_H */

Generated by: LCOV version 1.14