diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
commit | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (patch) | |
tree | 0bba044c4ce775e45a88a51686b5d9f90697ea9d /include/asm-x86_64/topology.h |
Linux-2.6.12-rc2v2.6.12-rc2
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.
Let it rip!
Diffstat (limited to 'include/asm-x86_64/topology.h')
-rw-r--r-- | include/asm-x86_64/topology.h | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/include/asm-x86_64/topology.h b/include/asm-x86_64/topology.h new file mode 100644 index 000000000000..67f24e0ea819 --- /dev/null +++ b/include/asm-x86_64/topology.h | |||
@@ -0,0 +1,68 @@ | |||
1 | #ifndef _ASM_X86_64_TOPOLOGY_H | ||
2 | #define _ASM_X86_64_TOPOLOGY_H | ||
3 | |||
4 | #include <linux/config.h> | ||
5 | |||
6 | #ifdef CONFIG_DISCONTIGMEM | ||
7 | |||
8 | #include <asm/mpspec.h> | ||
9 | #include <asm/bitops.h> | ||
10 | |||
11 | /* Map the K8 CPU local memory controllers to a simple 1:1 CPU:NODE topology */ | ||
12 | |||
13 | extern cpumask_t cpu_online_map; | ||
14 | |||
15 | extern unsigned char cpu_to_node[]; | ||
16 | extern cpumask_t node_to_cpumask[]; | ||
17 | extern cpumask_t pci_bus_to_cpumask[]; | ||
18 | |||
19 | #ifdef CONFIG_ACPI_NUMA | ||
20 | extern int __node_distance(int, int); | ||
21 | #define node_distance(a,b) __node_distance(a,b) | ||
22 | /* #else fallback version */ | ||
23 | #endif | ||
24 | |||
25 | #define cpu_to_node(cpu) (cpu_to_node[cpu]) | ||
26 | #define parent_node(node) (node) | ||
27 | #define node_to_first_cpu(node) (__ffs(node_to_cpumask[node])) | ||
28 | #define node_to_cpumask(node) (node_to_cpumask[node]) | ||
29 | |||
30 | static inline cpumask_t __pcibus_to_cpumask(int bus) | ||
31 | { | ||
32 | cpumask_t busmask = pci_bus_to_cpumask[bus]; | ||
33 | cpumask_t online = cpu_online_map; | ||
34 | cpumask_t res; | ||
35 | cpus_and(res, busmask, online); | ||
36 | return res; | ||
37 | } | ||
38 | #define pcibus_to_cpumask(bus) __pcibus_to_cpumask(bus->number) | ||
39 | |||
40 | #ifdef CONFIG_NUMA | ||
41 | /* sched_domains SD_NODE_INIT for x86_64 machines */ | ||
42 | #define SD_NODE_INIT (struct sched_domain) { \ | ||
43 | .span = CPU_MASK_NONE, \ | ||
44 | .parent = NULL, \ | ||
45 | .groups = NULL, \ | ||
46 | .min_interval = 8, \ | ||
47 | .max_interval = 32, \ | ||
48 | .busy_factor = 32, \ | ||
49 | .imbalance_pct = 125, \ | ||
50 | .cache_hot_time = (10*1000000), \ | ||
51 | .cache_nice_tries = 1, \ | ||
52 | .per_cpu_gain = 100, \ | ||
53 | .flags = SD_LOAD_BALANCE \ | ||
54 | | SD_BALANCE_NEWIDLE \ | ||
55 | | SD_BALANCE_EXEC \ | ||
56 | | SD_WAKE_IDLE \ | ||
57 | | SD_WAKE_BALANCE, \ | ||
58 | .last_balance = jiffies, \ | ||
59 | .balance_interval = 1, \ | ||
60 | .nr_balance_failed = 0, \ | ||
61 | } | ||
62 | #endif | ||
63 | |||
64 | #endif | ||
65 | |||
66 | #include <asm-generic/topology.h> | ||
67 | |||
68 | #endif | ||