2023-02-22 08:20:31

by Like Xu

[permalink] [raw]
Subject: [PATCH] KVM: x86/pmu: Apply event filter mechanism to emulated instructions

From: Like Xu <[email protected]>

The check_pmu_event_filter() prevents the perf_event from being created
and stops the associated counters from increasing, the same check should
also be applied to counter increases caused by emulated instructions.
Otherwise this filter mechanism cannot be considered to be in effect.

Reported-by: Jinrong Liang <[email protected]>
Signed-off-by: Like Xu <[email protected]>
---
arch/x86/kvm/pmu.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/x86/kvm/pmu.c b/arch/x86/kvm/pmu.c
index 7b6c3ba2c8e1..1fd1c2f0d4da 100644
--- a/arch/x86/kvm/pmu.c
+++ b/arch/x86/kvm/pmu.c
@@ -684,7 +684,8 @@ void kvm_pmu_trigger_event(struct kvm_vcpu *vcpu, u64 perf_hw_id)
for_each_set_bit(i, pmu->all_valid_pmc_idx, X86_PMC_IDX_MAX) {
pmc = static_call(kvm_x86_pmu_pmc_idx_to_pmc)(pmu, i);

- if (!pmc || !pmc_is_enabled(pmc) || !pmc_speculative_in_use(pmc))
+ if (!pmc || !pmc_is_enabled(pmc) || !pmc_speculative_in_use(pmc) ||
+ !check_pmu_event_filter(pmc))
continue;

/* Ignore checks for edge detect, pin control, invert and CMASK bits */

base-commit: 13738a3647368f7f600b30d241779bcd2a3ebbfd
--
2.39.2



2023-02-22 19:28:22

by Sean Christopherson

[permalink] [raw]
Subject: Re: [PATCH] KVM: x86/pmu: Apply event filter mechanism to emulated instructions

On Wed, Feb 22, 2023, Like Xu wrote:
> From: Like Xu <[email protected]>
>
> The check_pmu_event_filter() prevents the perf_event from being created
> and stops the associated counters from increasing, the same check should
> also be applied to counter increases caused by emulated instructions.
> Otherwise this filter mechanism cannot be considered to be in effect.
>
> Reported-by: Jinrong Liang <[email protected]>

Already posted by Aaron[*], but I don't think there's been a follow-up. Aaron?

[*] https://lore.kernel.org/all/[email protected]

2023-02-22 20:38:27

by Aaron Lewis

[permalink] [raw]
Subject: Re: [PATCH] KVM: x86/pmu: Apply event filter mechanism to emulated instructions

On Wed, Feb 22, 2023 at 7:28 PM Sean Christopherson <[email protected]> wrote:
>
> On Wed, Feb 22, 2023, Like Xu wrote:
> > From: Like Xu <[email protected]>
> >
> > The check_pmu_event_filter() prevents the perf_event from being created
> > and stops the associated counters from increasing, the same check should
> > also be applied to counter increases caused by emulated instructions.
> > Otherwise this filter mechanism cannot be considered to be in effect.
> >
> > Reported-by: Jinrong Liang <[email protected]>
>
> Already posted by Aaron[*], but I don't think there's been a follow-up. Aaron?
>
> [*] https://lore.kernel.org/all/[email protected]

There hasn't been a follow-up yet. I'll try to get one out in the
next week or so.