Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v3.0-rc4 141 lines 3.6 kB view raw
1#ifndef _ASM_POWERPC_TOPOLOGY_H 2#define _ASM_POWERPC_TOPOLOGY_H 3#ifdef __KERNEL__ 4 5 6struct sys_device; 7struct device_node; 8 9#ifdef CONFIG_NUMA 10 11/* 12 * Before going off node we want the VM to try and reclaim from the local 13 * node. It does this if the remote distance is larger than RECLAIM_DISTANCE. 14 * With the default REMOTE_DISTANCE of 20 and the default RECLAIM_DISTANCE of 15 * 20, we never reclaim and go off node straight away. 16 * 17 * To fix this we choose a smaller value of RECLAIM_DISTANCE. 18 */ 19#define RECLAIM_DISTANCE 10 20 21/* 22 * Before going off node we want the VM to try and reclaim from the local 23 * node. It does this if the remote distance is larger than RECLAIM_DISTANCE. 24 * With the default REMOTE_DISTANCE of 20 and the default RECLAIM_DISTANCE of 25 * 20, we never reclaim and go off node straight away. 26 * 27 * To fix this we choose a smaller value of RECLAIM_DISTANCE. 28 */ 29#define RECLAIM_DISTANCE 10 30 31#include <asm/mmzone.h> 32 33static inline int cpu_to_node(int cpu) 34{ 35 return numa_cpu_lookup_table[cpu]; 36} 37 38#define parent_node(node) (node) 39 40#define cpumask_of_node(node) ((node) == -1 ? \ 41 cpu_all_mask : \ 42 node_to_cpumask_map[node]) 43 44struct pci_bus; 45#ifdef CONFIG_PCI 46extern int pcibus_to_node(struct pci_bus *bus); 47#else 48static inline int pcibus_to_node(struct pci_bus *bus) 49{ 50 return -1; 51} 52#endif 53 54#define cpumask_of_pcibus(bus) (pcibus_to_node(bus) == -1 ? \ 55 cpu_all_mask : \ 56 cpumask_of_node(pcibus_to_node(bus))) 57 58/* sched_domains SD_NODE_INIT for PPC64 machines */ 59#define SD_NODE_INIT (struct sched_domain) { \ 60 .min_interval = 8, \ 61 .max_interval = 32, \ 62 .busy_factor = 32, \ 63 .imbalance_pct = 125, \ 64 .cache_nice_tries = 1, \ 65 .busy_idx = 3, \ 66 .idle_idx = 1, \ 67 .newidle_idx = 0, \ 68 .wake_idx = 0, \ 69 .forkexec_idx = 0, \ 70 \ 71 .flags = 1*SD_LOAD_BALANCE \ 72 | 1*SD_BALANCE_NEWIDLE \ 73 | 1*SD_BALANCE_EXEC \ 74 | 1*SD_BALANCE_FORK \ 75 | 0*SD_BALANCE_WAKE \ 76 | 0*SD_WAKE_AFFINE \ 77 | 0*SD_PREFER_LOCAL \ 78 | 0*SD_SHARE_CPUPOWER \ 79 | 0*SD_POWERSAVINGS_BALANCE \ 80 | 0*SD_SHARE_PKG_RESOURCES \ 81 | 1*SD_SERIALIZE \ 82 | 0*SD_PREFER_SIBLING \ 83 , \ 84 .last_balance = jiffies, \ 85 .balance_interval = 1, \ 86} 87 88extern int __node_distance(int, int); 89#define node_distance(a, b) __node_distance(a, b) 90 91extern void __init dump_numa_cpu_topology(void); 92 93extern int sysfs_add_device_to_node(struct sys_device *dev, int nid); 94extern void sysfs_remove_device_from_node(struct sys_device *dev, int nid); 95 96#else 97 98static inline void dump_numa_cpu_topology(void) {} 99 100static inline int sysfs_add_device_to_node(struct sys_device *dev, int nid) 101{ 102 return 0; 103} 104 105static inline void sysfs_remove_device_from_node(struct sys_device *dev, 106 int nid) 107{ 108} 109#endif /* CONFIG_NUMA */ 110 111#if defined(CONFIG_NUMA) && defined(CONFIG_PPC_SPLPAR) 112extern int start_topology_update(void); 113extern int stop_topology_update(void); 114#else 115static inline int start_topology_update(void) 116{ 117 return 0; 118} 119static inline int stop_topology_update(void) 120{ 121 return 0; 122} 123#endif /* CONFIG_NUMA && CONFIG_PPC_SPLPAR */ 124 125#include <asm-generic/topology.h> 126 127#ifdef CONFIG_SMP 128#include <asm/cputable.h> 129#define smt_capable() (cpu_has_feature(CPU_FTR_SMT)) 130 131#ifdef CONFIG_PPC64 132#include <asm/smp.h> 133 134#define topology_thread_cpumask(cpu) (per_cpu(cpu_sibling_map, cpu)) 135#define topology_core_cpumask(cpu) (per_cpu(cpu_core_map, cpu)) 136#define topology_core_id(cpu) (cpu_to_core_id(cpu)) 137#endif 138#endif 139 140#endif /* __KERNEL__ */ 141#endif /* _ASM_POWERPC_TOPOLOGY_H */