aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86_64/kernel/setup.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86_64/kernel/setup.c')
-rw-r--r--arch/x86_64/kernel/setup.c34
1 files changed, 16 insertions, 18 deletions
diff --git a/arch/x86_64/kernel/setup.c b/arch/x86_64/kernel/setup.c
index 923b76fb0aa6..8ade23d7ae76 100644
--- a/arch/x86_64/kernel/setup.c
+++ b/arch/x86_64/kernel/setup.c
@@ -833,15 +833,13 @@ static void __init amd_detect_cmp(struct cpuinfo_x86 *c)
833 } 833 }
834 numa_set_node(cpu, node); 834 numa_set_node(cpu, node);
835 835
836 printk(KERN_INFO "CPU %d/%x(%d) -> Node %d -> Core %d\n", 836 printk(KERN_INFO "CPU %d/%x -> Node %d\n", cpu, apicid, node);
837 cpu, apicid, c->x86_max_cores, node, c->cpu_core_id);
838#endif 837#endif
839#endif 838#endif
840} 839}
841 840
842static int __init init_amd(struct cpuinfo_x86 *c) 841static void __init init_amd(struct cpuinfo_x86 *c)
843{ 842{
844 int r;
845 unsigned level; 843 unsigned level;
846 844
847#ifdef CONFIG_SMP 845#ifdef CONFIG_SMP
@@ -874,8 +872,8 @@ static int __init init_amd(struct cpuinfo_x86 *c)
874 if (c->x86 >= 6) 872 if (c->x86 >= 6)
875 set_bit(X86_FEATURE_FXSAVE_LEAK, &c->x86_capability); 873 set_bit(X86_FEATURE_FXSAVE_LEAK, &c->x86_capability);
876 874
877 r = get_model_name(c); 875 level = get_model_name(c);
878 if (!r) { 876 if (!level) {
879 switch (c->x86) { 877 switch (c->x86) {
880 case 15: 878 case 15:
881 /* Should distinguish Models here, but this is only 879 /* Should distinguish Models here, but this is only
@@ -896,8 +894,6 @@ static int __init init_amd(struct cpuinfo_x86 *c)
896 894
897 /* Fix cpuid4 emulation for more */ 895 /* Fix cpuid4 emulation for more */
898 num_cache_leaves = 3; 896 num_cache_leaves = 3;
899
900 return r;
901} 897}
902 898
903static void __cpuinit detect_ht(struct cpuinfo_x86 *c) 899static void __cpuinit detect_ht(struct cpuinfo_x86 *c)
@@ -909,8 +905,10 @@ static void __cpuinit detect_ht(struct cpuinfo_x86 *c)
909 cpuid(1, &eax, &ebx, &ecx, &edx); 905 cpuid(1, &eax, &ebx, &ecx, &edx);
910 906
911 907
912 if (!cpu_has(c, X86_FEATURE_HT) || cpu_has(c, X86_FEATURE_CMP_LEGACY)) 908 if (!cpu_has(c, X86_FEATURE_HT))
913 return; 909 return;
910 if (cpu_has(c, X86_FEATURE_CMP_LEGACY))
911 goto out;
914 912
915 smp_num_siblings = (ebx & 0xff0000) >> 16; 913 smp_num_siblings = (ebx & 0xff0000) >> 16;
916 914
@@ -927,9 +925,6 @@ static void __cpuinit detect_ht(struct cpuinfo_x86 *c)
927 index_msb = get_count_order(smp_num_siblings); 925 index_msb = get_count_order(smp_num_siblings);
928 c->phys_proc_id = phys_pkg_id(index_msb); 926 c->phys_proc_id = phys_pkg_id(index_msb);
929 927
930 printk(KERN_INFO "CPU: Physical Processor ID: %d\n",
931 c->phys_proc_id);
932
933 smp_num_siblings = smp_num_siblings / c->x86_max_cores; 928 smp_num_siblings = smp_num_siblings / c->x86_max_cores;
934 929
935 index_msb = get_count_order(smp_num_siblings) ; 930 index_msb = get_count_order(smp_num_siblings) ;
@@ -938,11 +933,13 @@ static void __cpuinit detect_ht(struct cpuinfo_x86 *c)
938 933
939 c->cpu_core_id = phys_pkg_id(index_msb) & 934 c->cpu_core_id = phys_pkg_id(index_msb) &
940 ((1 << core_bits) - 1); 935 ((1 << core_bits) - 1);
941
942 if (c->x86_max_cores > 1)
943 printk(KERN_INFO "CPU: Processor Core ID: %d\n",
944 c->cpu_core_id);
945 } 936 }
937out:
938 if ((c->x86_max_cores * smp_num_siblings) > 1) {
939 printk(KERN_INFO "CPU: Physical Processor ID: %d\n", c->phys_proc_id);
940 printk(KERN_INFO "CPU: Processor Core ID: %d\n", c->cpu_core_id);
941 }
942
946#endif 943#endif
947} 944}
948 945
@@ -969,16 +966,17 @@ static void srat_detect_node(void)
969#ifdef CONFIG_NUMA 966#ifdef CONFIG_NUMA
970 unsigned node; 967 unsigned node;
971 int cpu = smp_processor_id(); 968 int cpu = smp_processor_id();
969 int apicid = hard_smp_processor_id();
972 970
973 /* Don't do the funky fallback heuristics the AMD version employs 971 /* Don't do the funky fallback heuristics the AMD version employs
974 for now. */ 972 for now. */
975 node = apicid_to_node[hard_smp_processor_id()]; 973 node = apicid_to_node[apicid];
976 if (node == NUMA_NO_NODE) 974 if (node == NUMA_NO_NODE)
977 node = first_node(node_online_map); 975 node = first_node(node_online_map);
978 numa_set_node(cpu, node); 976 numa_set_node(cpu, node);
979 977
980 if (acpi_numa > 0) 978 if (acpi_numa > 0)
981 printk(KERN_INFO "CPU %d -> Node %d\n", cpu, node); 979 printk(KERN_INFO "CPU %d/%x -> Node %d\n", cpu, apicid, node);
982#endif 980#endif
983} 981}
984 982