diff options
Diffstat (limited to 'arch/x86/kernel/cpu/common.c')
-rw-r--r-- | arch/x86/kernel/cpu/common.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c index 6b9333b429ba..b2016df00813 100644 --- a/arch/x86/kernel/cpu/common.c +++ b/arch/x86/kernel/cpu/common.c | |||
@@ -452,6 +452,25 @@ void __cpuinit cpu_detect_cache_sizes(struct cpuinfo_x86 *c) | |||
452 | c->x86_cache_size = l2size; | 452 | c->x86_cache_size = l2size; |
453 | } | 453 | } |
454 | 454 | ||
455 | u16 __read_mostly tlb_lli_4k[NR_INFO]; | ||
456 | u16 __read_mostly tlb_lli_2m[NR_INFO]; | ||
457 | u16 __read_mostly tlb_lli_4m[NR_INFO]; | ||
458 | u16 __read_mostly tlb_lld_4k[NR_INFO]; | ||
459 | u16 __read_mostly tlb_lld_2m[NR_INFO]; | ||
460 | u16 __read_mostly tlb_lld_4m[NR_INFO]; | ||
461 | |||
462 | void __cpuinit cpu_detect_tlb(struct cpuinfo_x86 *c) | ||
463 | { | ||
464 | if (this_cpu->c_detect_tlb) | ||
465 | this_cpu->c_detect_tlb(c); | ||
466 | |||
467 | printk(KERN_INFO "Last level iTLB entries: 4KB %d, 2MB %d, 4MB %d\n" \ | ||
468 | "Last level dTLB entries: 4KB %d, 2MB %d, 4MB %d\n", | ||
469 | tlb_lli_4k[ENTRIES], tlb_lli_2m[ENTRIES], | ||
470 | tlb_lli_4m[ENTRIES], tlb_lld_4k[ENTRIES], | ||
471 | tlb_lld_2m[ENTRIES], tlb_lld_4m[ENTRIES]); | ||
472 | } | ||
473 | |||
455 | void __cpuinit detect_ht(struct cpuinfo_x86 *c) | 474 | void __cpuinit detect_ht(struct cpuinfo_x86 *c) |
456 | { | 475 | { |
457 | #ifdef CONFIG_X86_HT | 476 | #ifdef CONFIG_X86_HT |
@@ -911,6 +930,8 @@ void __init identify_boot_cpu(void) | |||
911 | #else | 930 | #else |
912 | vgetcpu_set_mode(); | 931 | vgetcpu_set_mode(); |
913 | #endif | 932 | #endif |
933 | if (boot_cpu_data.cpuid_level >= 2) | ||
934 | cpu_detect_tlb(&boot_cpu_data); | ||
914 | } | 935 | } |
915 | 936 | ||
916 | void __cpuinit identify_secondary_cpu(struct cpuinfo_x86 *c) | 937 | void __cpuinit identify_secondary_cpu(struct cpuinfo_x86 *c) |