KVM: x86/vPMU: refine kvm_pmu err msg when event creation failed
authorLike Xu <like.xu@linux.intel.com>
Thu, 18 Jul 2019 05:35:14 +0000 (13:35 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 26 Jul 2019 07:14:24 +0000 (09:14 +0200)
commit 6fc3977ccc5d3c22e851f2dce2d3ce2a0a843842 upstream.

If a perf_event creation fails due to any reason of the host perf
subsystem, it has no chance to log the corresponding event for guest
which may cause abnormal sampling data in guest result. In debug mode,
this message helps to understand the state of vPMC and we may not
limit the number of occurrences but not in a spamming style.

Suggested-by: Joe Perches <joe@perches.com>
Signed-off-by: Like Xu <like.xu@linux.intel.com>
Cc: stable@vger.kernel.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/x86/kvm/pmu.c

index 952aebd0a8a34fa750993a3d6b7b626be31192a0..acc8d217f6565cfa877f5a72bd24b644f97bd198 100644 (file)
@@ -131,8 +131,8 @@ static void pmc_reprogram_counter(struct kvm_pmc *pmc, u32 type,
                                                 intr ? kvm_perf_overflow_intr :
                                                 kvm_perf_overflow, pmc);
        if (IS_ERR(event)) {
-               printk_once("kvm_pmu: event creation failed %ld\n",
-                           PTR_ERR(event));
+               pr_debug_ratelimited("kvm_pmu: event creation failed %ld for pmc->idx = %d\n",
+                           PTR_ERR(event), pmc->idx);
                return;
        }