diff options
Diffstat (limited to 'arch/x86_64/kernel/setup.c')
-rw-r--r-- | arch/x86_64/kernel/setup.c | 34 |
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 | ||
842 | static int __init init_amd(struct cpuinfo_x86 *c) | 841 | static 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 | ||
903 | static void __cpuinit detect_ht(struct cpuinfo_x86 *c) | 899 | static 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 | } |
937 | out: | ||
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 | ||