mirror of https://gitee.com/openkylin/linux.git
perfcounters: IRQ and NMI support on AMD CPUs, fix
The BKGD suggests that counter width on AMD CPUs is 48 for all existing models (it certainly is for mine). Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
b0f3f28e0f
commit
b5e8acf66f
|
@ -959,20 +959,8 @@ static struct pmc_x86_ops *pmc_amd_init(void)
|
||||||
|
|
||||||
nr_counters_generic = 4;
|
nr_counters_generic = 4;
|
||||||
nr_counters_fixed = 0;
|
nr_counters_fixed = 0;
|
||||||
counter_value_mask = ~0ULL;
|
counter_value_mask = 0x0000FFFFFFFFFFFFULL;
|
||||||
|
counter_value_bits = 48;
|
||||||
rdmsrl(MSR_K7_PERFCTR0, old);
|
|
||||||
wrmsrl(MSR_K7_PERFCTR0, counter_value_mask);
|
|
||||||
/*
|
|
||||||
* read the truncated mask
|
|
||||||
*/
|
|
||||||
rdmsrl(MSR_K7_PERFCTR0, counter_value_mask);
|
|
||||||
wrmsrl(MSR_K7_PERFCTR0, old);
|
|
||||||
|
|
||||||
bits = 32 + fls(counter_value_mask >> 32);
|
|
||||||
if (bits == 32)
|
|
||||||
bits = fls((u32)counter_value_mask);
|
|
||||||
counter_value_bits = bits;
|
|
||||||
|
|
||||||
pr_info("AMD Performance Monitoring support detected.\n");
|
pr_info("AMD Performance Monitoring support detected.\n");
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue