Re: [tip:perf/core] perf/x86: Tone down kernel messages when the PMU check fails in a virtual environment

From: Andy Lutomirski
Date: Mon Oct 06 2014 - 17:10:32 EST


On 10/02/2014 10:28 PM, tip-bot for Wei Huang wrote:
> Commit-ID: cc6cd47e7395bc05c5077009808b820633eb3f18
> Gitweb: http://git.kernel.org/tip/cc6cd47e7395bc05c5077009808b820633eb3f18
> Author: Wei Huang <wei@xxxxxxxxxx>
> AuthorDate: Wed, 24 Sep 2014 22:55:14 -0500
> Committer: Ingo Molnar <mingo@xxxxxxxxxx>
> CommitDate: Fri, 3 Oct 2014 06:04:41 +0200
>
> perf/x86: Tone down kernel messages when the PMU check fails in a virtual environment
>
> PMU checking can fail due to various reasons. On native machine, this
> is mostly caused by faulty hardware and it is reasonable to use
> KERN_ERR in reporting. However, when kernel is running on virtualized
> environment, this checking can fail if virtual PMU is not supported
> (e.g. KVM on AMD host). It is annoying to see an error message on
> splash screen, even though we know such failure is benign on
> virtualized environment.
>
> This patch checks if the kernel is running in a virtualized environment.
> If so, it will use KERN_INFO in reporting, which reduces the syslog
> priority of them. This patch was tested successfully on KVM.
>
> Signed-off-by: Wei Huang <wei@xxxxxxxxxx>
> Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
> Cc: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
> Link: http://lkml.kernel.org/r/1411617314-24659-1-git-send-email-wei@xxxxxxxxxx
> Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
> ---
> arch/x86/kernel/cpu/perf_event.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/arch/x86/kernel/cpu/perf_event.c b/arch/x86/kernel/cpu/perf_event.c
> index 918d75f..16c7302 100644
> --- a/arch/x86/kernel/cpu/perf_event.c
> +++ b/arch/x86/kernel/cpu/perf_event.c
> @@ -243,7 +243,8 @@ static bool check_hw_exists(void)
>
> msr_fail:
> printk(KERN_CONT "Broken PMU hardware detected, using software events only.\n");
> - printk(KERN_ERR "Failed to access perfctr msr (MSR %x is %Lx)\n", reg, val_new);
> + printk(boot_cpu_has(X86_FEATURE_HYPERVISOR) ? KERN_INFO : KERN_ERR
> + "Failed to access perfctr msr (MSR %x is %Lx)\n", reg, val_new);
>

This is bogus. String concatenation doesn't work like that.

Try "%sFailed...", boot_cpu_has(X86_FEATURE_HYPERVISOR) ? KERN_ERR :
KERN_INFO), etc.

--Andy
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/