/* When an ACPI SRAT table is available use the mappings from SRAT instead. */ node = phys_proc_id[cpu]; if (acpi_numa > 0) { if (apicid_to_node[apicid] != NUMA_NO_NODE) node = apicid_to_node[apicid]; else printk(KERN_ERR "SRAT: Didn't specify node for CPU %d(%d)\n", cpu, apicid); } if (!node_online(node)) node = first_node(node_online_map); cpu_to_node[cpu] = node; 
node = phys_proc_id[cpu]; if (apicid_to_node[apicid] != NUMA_NO_NODE) node = apicid_to_node[apicid]; if (!node_online(node)) { /* Two possibilities here: - The CPU is missing memory and no node was created. In that case try picking one from a nearby CPU - The APIC IDs differ from the HyperTransport node IDs which the K8 northbridge parsing fills in. Assume they are all increased by a constant offset, but in the same order as the HT nodeids. If that doesn't result in a usable node fall back to the path for the previous case.  */ int ht_nodeid = apicid - (phys_proc_id[0] << bits); if (ht_nodeid >= 0 && apicid_to_node[ht_nodeid] != NUMA_NO_NODE) node = apicid_to_node[ht_nodeid]; /* Pick a nearby node */ if (!node_online(node)) node = nearby_node(apicid); } cpu_to_node[cpu] = node;  printk(KERN_INFO "CPU %d(%d) -> Node %d -> Core %d\n", cpu, c->x86_num_cores, node, cpu_core_id[cpu]); 
static void __init amd_detect_cmp(struct cpuinfo_x86 *c){#ifdef CONFIG_SMP	int cpu = smp_processor_id();	int node = 0;	unsigned bits;	unsigned apicid = phys_proc_id[cpu];	bits = 0;	while ((1 << bits) < c->x86_num_cores)		bits++;	/* Low order bits define the core id (index of core in socket) */	cpu_core_id[cpu] = phys_proc_id[cpu] & ((1 << bits)-1);	/* Convert the APIC ID into the socket ID */	phys_proc_id[cpu] >>= bits;#ifdef CONFIG_NUMA	/* When an ACPI SRAT table is available use the mappings from SRAT	   instead. */	node = phys_proc_id[cpu];	if (acpi_numa > 0) {		if (apicid_to_node[apicid] != NUMA_NO_NODE)			node = apicid_to_node[apicid];		else			printk(KERN_ERR			       "SRAT: Didn't specify node for CPU %d(%d)\n",			       cpu, apicid);	}	if (!node_online(node))		node = first_node(node_online_map);	cpu_to_node[cpu] = node;#endif	printk(KERN_INFO "CPU %d(%d) -> Node %d -> Core %d\n",			cpu, c->x86_num_cores, node, cpu_core_id[cpu]);#endif}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/3f098c2605bdf50176b26f4fa724e9b9c99e5242/setup.c/clean/arch/x86_64/kernel/setup.c