|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] perf: Check all MSRs before passing hw check
>>> On 15.03.13 at 13:20, George Dunlap <george.dunlap@xxxxxxxxxxxxx> wrote:
> --- a/arch/x86/kernel/cpu/perf_event.c
> +++ b/arch/x86/kernel/cpu/perf_event.c
> @@ -182,6 +182,7 @@ static bool check_hw_exists(void)
> {
> u64 val, val_new = ~0;
> int i, reg, ret = 0;
> + int bios_fail = 0;
>
> /*
> * Check to see if the BIOS enabled any of the counters, if so
> @@ -193,7 +194,7 @@ static bool check_hw_exists(void)
> if (ret)
> goto msr_fail;
> if (val & ARCH_PERFMON_EVENTSEL_ENABLE)
> - goto bios_fail;
> + bios_fail = 1;
> }
>
> if (x86_pmu.num_counters_fixed) {
> @@ -203,7 +204,7 @@ static bool check_hw_exists(void)
> goto msr_fail;
> for (i = 0; i < x86_pmu.num_counters_fixed; i++) {
> if (val & (0x03 << i*4))
> - goto bios_fail;
> + bios_fail = 1;
> }
> }
>
> @@ -221,14 +222,13 @@ static bool check_hw_exists(void)
> if (ret || val != val_new)
> goto msr_fail;
>
> - return true;
> -
> -bios_fail:
> - /*
> - * We still allow the PMU driver to operate:
> - */
> - printk(KERN_CONT "Broken BIOS detected, complain to your hardware
> vendor.\n");
> - printk(KERN_ERR FW_BUG "the BIOS has corrupted hw-PMU resources (MSR %x
> is %Lx)\n", reg, val);
> + if (bios_fail) {
> + /*
> + * We still allow the PMU driver to operate:
> + */
> + printk(KERN_CONT "Broken BIOS detected, complain to your
> hardware vendor.\n");
> + printk(KERN_ERR FW_BUG "the BIOS has corrupted hw-PMU resources
> (MSR %x is %Lx)\n", reg, val);
The values being printed here are not meaningful anymore with this
patch.
Jan
> + }
>
> return true;
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |