| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | #ifndef _ASM_X86_64_TOPOLOGY_H | 
 | 2 | #define _ASM_X86_64_TOPOLOGY_H | 
 | 3 |  | 
 | 4 | #include <linux/config.h> | 
 | 5 |  | 
| Matt Tolentino | 2b97690 | 2005-06-23 00:08:06 -0700 | [diff] [blame] | 6 | #ifdef CONFIG_NUMA | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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[]; | 
| Christoph Lameter | 8c5a090 | 2005-06-23 00:08:18 -0700 | [diff] [blame] | 16 | extern unsigned char pci_bus_to_node[]; | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 17 | extern cpumask_t     node_to_cpumask[]; | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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]) | 
| Christoph Lameter | 8c5a090 | 2005-06-23 00:08:18 -0700 | [diff] [blame] | 29 | #define pcibus_to_node(bus)		pci_bus_to_node[(bus)->number] | 
 | 30 | #define pcibus_to_cpumask(bus)		node_to_cpumask(pcibus_to_node(bus)); | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 31 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 32 | /* sched_domains SD_NODE_INIT for x86_64 machines */ | 
 | 33 | #define SD_NODE_INIT (struct sched_domain) {		\ | 
 | 34 | 	.span			= CPU_MASK_NONE,	\ | 
 | 35 | 	.parent			= NULL,			\ | 
 | 36 | 	.groups			= NULL,			\ | 
 | 37 | 	.min_interval		= 8,			\ | 
 | 38 | 	.max_interval		= 32,			\ | 
 | 39 | 	.busy_factor		= 32,			\ | 
 | 40 | 	.imbalance_pct		= 125,			\ | 
 | 41 | 	.cache_hot_time		= (10*1000000),		\ | 
| Nick Piggin | 7897986 | 2005-06-25 14:57:13 -0700 | [diff] [blame] | 42 | 	.cache_nice_tries	= 2,			\ | 
 | 43 | 	.busy_idx		= 3,			\ | 
 | 44 | 	.idle_idx		= 2,			\ | 
| Nick Piggin | 687f166 | 2005-06-25 14:57:21 -0700 | [diff] [blame] | 45 | 	.newidle_idx		= 0, 			\ | 
| Nick Piggin | 7897986 | 2005-06-25 14:57:13 -0700 | [diff] [blame] | 46 | 	.wake_idx		= 1,			\ | 
| Nick Piggin | 147cbb4 | 2005-06-25 14:57:19 -0700 | [diff] [blame] | 47 | 	.forkexec_idx		= 1,			\ | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 48 | 	.per_cpu_gain		= 100,			\ | 
 | 49 | 	.flags			= SD_LOAD_BALANCE	\ | 
| Nick Piggin | 147cbb4 | 2005-06-25 14:57:19 -0700 | [diff] [blame] | 50 | 				| SD_BALANCE_FORK	\ | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 51 | 				| SD_BALANCE_EXEC	\ | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 52 | 				| SD_WAKE_BALANCE,	\ | 
 | 53 | 	.last_balance		= jiffies,		\ | 
 | 54 | 	.balance_interval	= 1,			\ | 
 | 55 | 	.nr_balance_failed	= 0,			\ | 
 | 56 | } | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 57 |  | 
 | 58 | #endif | 
 | 59 |  | 
 | 60 | #include <asm-generic/topology.h> | 
 | 61 |  | 
 | 62 | #endif |