-
Notifications
You must be signed in to change notification settings - Fork 114
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
numa: Move numa implementation to common code
ARM64 numa implementation is generic enough that RISC-V can reuse that implementation with very minor cosmetic changes. This will help both ARM64 and RISC-V in terms of maintanace and feature improvement Move the numa implementation code to common directory so that both ISAs can reuse this. This doesn't introduce any function changes for ARM64. Signed-off-by: Atish Patra <atish.patra@wdc.com> Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Tested-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Acked-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
- Loading branch information
1 parent
eb75541
commit ae3c107
Showing
7 changed files
with
61 additions
and
48 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
/* SPDX-License-Identifier: GPL-2.0 */ | ||
#ifndef __ASM_GENERIC_NUMA_H | ||
#define __ASM_GENERIC_NUMA_H | ||
|
||
#ifdef CONFIG_NUMA | ||
|
||
#define NR_NODE_MEMBLKS (MAX_NUMNODES * 2) | ||
|
||
int __node_distance(int from, int to); | ||
#define node_distance(a, b) __node_distance(a, b) | ||
|
||
extern nodemask_t numa_nodes_parsed __initdata; | ||
|
||
extern bool numa_off; | ||
|
||
/* Mappings between node number and cpus on that node. */ | ||
extern cpumask_var_t node_to_cpumask_map[MAX_NUMNODES]; | ||
void numa_clear_node(unsigned int cpu); | ||
|
||
#ifdef CONFIG_DEBUG_PER_CPU_MAPS | ||
const struct cpumask *cpumask_of_node(int node); | ||
#else | ||
/* Returns a pointer to the cpumask of CPUs on Node 'node'. */ | ||
static inline const struct cpumask *cpumask_of_node(int node) | ||
{ | ||
if (node == NUMA_NO_NODE) | ||
return cpu_all_mask; | ||
|
||
return node_to_cpumask_map[node]; | ||
} | ||
#endif | ||
|
||
void __init arch_numa_init(void); | ||
int __init numa_add_memblk(int nodeid, u64 start, u64 end); | ||
void __init numa_set_distance(int from, int to, int distance); | ||
void __init numa_free_distance(void); | ||
void __init early_map_cpu_to_node(unsigned int cpu, int nid); | ||
void numa_store_cpu_info(unsigned int cpu); | ||
void numa_add_cpu(unsigned int cpu); | ||
void numa_remove_cpu(unsigned int cpu); | ||
|
||
#else /* CONFIG_NUMA */ | ||
|
||
static inline void numa_store_cpu_info(unsigned int cpu) { } | ||
static inline void numa_add_cpu(unsigned int cpu) { } | ||
static inline void numa_remove_cpu(unsigned int cpu) { } | ||
static inline void arch_numa_init(void) { } | ||
static inline void early_map_cpu_to_node(unsigned int cpu, int nid) { } | ||
|
||
#endif /* CONFIG_NUMA */ | ||
|
||
#endif /* __ASM_GENERIC_NUMA_H */ |