Loading arch/x86/kernel/cpu/common.c +51 −0 Original line number Diff line number Diff line Loading @@ -616,6 +616,49 @@ void __cpuinit identify_secondary_cpu(struct cpuinfo_x86 *c) mtrr_ap_init(); } struct msr_range { unsigned min; unsigned max; }; static struct msr_range msr_range_array[] __cpuinitdata = { { 0x00000000, 0x00000418}, { 0xc0000000, 0xc000040b}, { 0xc0010000, 0xc0010142}, { 0xc0011000, 0xc001103b}, }; static void __cpuinit print_cpu_msr(void) { unsigned index; u64 val; int i; unsigned index_min, index_max; for (i = 0; i < ARRAY_SIZE(msr_range_array); i++) { index_min = msr_range_array[i].min; index_max = msr_range_array[i].max; for (index = index_min; index < index_max; index++) { if (rdmsrl_amd_safe(index, &val)) continue; printk(KERN_INFO " MSR%08x: %016llx\n", index, val); } } } static int show_msr __cpuinitdata; static __init int setup_show_msr(char *arg) { int num; get_option(&arg, &num); if (num > 0) show_msr = num; return 1; } __setup("show_msr=", setup_show_msr); static __init int setup_noclflush(char *arg) { setup_clear_cpu_cap(X86_FEATURE_CLFLSH); Loading Loading @@ -644,6 +687,14 @@ void __cpuinit print_cpu_info(struct cpuinfo_x86 *c) printk(KERN_CONT " stepping %02x\n", c->x86_mask); else printk(KERN_CONT "\n"); #ifdef CONFIG_SMP if (c->cpu_index < show_msr) print_cpu_msr(); #else if (show_msr) print_cpu_msr(); #endif } static __init int setup_disablecpuid(char *arg) Loading Loading
arch/x86/kernel/cpu/common.c +51 −0 Original line number Diff line number Diff line Loading @@ -616,6 +616,49 @@ void __cpuinit identify_secondary_cpu(struct cpuinfo_x86 *c) mtrr_ap_init(); } struct msr_range { unsigned min; unsigned max; }; static struct msr_range msr_range_array[] __cpuinitdata = { { 0x00000000, 0x00000418}, { 0xc0000000, 0xc000040b}, { 0xc0010000, 0xc0010142}, { 0xc0011000, 0xc001103b}, }; static void __cpuinit print_cpu_msr(void) { unsigned index; u64 val; int i; unsigned index_min, index_max; for (i = 0; i < ARRAY_SIZE(msr_range_array); i++) { index_min = msr_range_array[i].min; index_max = msr_range_array[i].max; for (index = index_min; index < index_max; index++) { if (rdmsrl_amd_safe(index, &val)) continue; printk(KERN_INFO " MSR%08x: %016llx\n", index, val); } } } static int show_msr __cpuinitdata; static __init int setup_show_msr(char *arg) { int num; get_option(&arg, &num); if (num > 0) show_msr = num; return 1; } __setup("show_msr=", setup_show_msr); static __init int setup_noclflush(char *arg) { setup_clear_cpu_cap(X86_FEATURE_CLFLSH); Loading Loading @@ -644,6 +687,14 @@ void __cpuinit print_cpu_info(struct cpuinfo_x86 *c) printk(KERN_CONT " stepping %02x\n", c->x86_mask); else printk(KERN_CONT "\n"); #ifdef CONFIG_SMP if (c->cpu_index < show_msr) print_cpu_msr(); #else if (show_msr) print_cpu_msr(); #endif } static __init int setup_disablecpuid(char *arg) Loading