selftests: kvm/x86: Verify the pmu event filter matches the correct event
authorAaron Lewis <aaronlewis@google.com>
Tue, 17 May 2022 05:12:38 +0000 (05:12 +0000)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 20 May 2022 11:06:55 +0000 (07:06 -0400)
commitc41ef29cc1d4fa4ac5f1bb8e6ab57bf6f02cf878
treebf4ea44f7ec5d8047f3bbc4ab88610d60aaa6aec
parent04baa2233d55e85e0f0f5dfe0401ecb027da9a0e
selftests: kvm/x86: Verify the pmu event filter matches the correct event

Add a test to demonstrate that when the guest programs an event select
it is matched correctly in the pmu event filter and not inadvertently
filtered.  This could happen on AMD if the high nybble[1] in the event
select gets truncated away only leaving the bottom byte[2] left for
matching.

This is a contrived example used for the convenience of demonstrating
this issue, however, this can be applied to event selects 0x28A (OC
Mode Switch) and 0x08A (L1 BTB Correction), where 0x08A could end up
being denied when the event select was only set up to deny 0x28A.

[1] bits 35:32 in the event select register and bits 11:8 in the event
    select.
[2] bits 7:0 in the event select register and bits 7:0 in the event
    select.

Signed-off-by: Aaron Lewis <aaronlewis@google.com>
Message-Id: <20220517051238.2566934-3-aaronlewis@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
tools/testing/selftests/kvm/x86_64/pmu_event_filter_test.c