KVM: selftests: Introduce "struct __kvm_pmu_event_filter" to manipulate filter
authorJinrong Liang <cloudliang@tencent.com>
Thu, 10 Aug 2023 09:09:42 +0000 (17:09 +0800)
committerSean Christopherson <seanjc@google.com>
Thu, 17 Aug 2023 20:22:17 +0000 (13:22 -0700)
commitde527b1daf69a41a265f48ad7bb9207ca7b7d29b
treea1fc015a38b582e271e6bf185ac898251d8b2619
parentc853be2265ccd497ff17b878962a2dbcb4873abf
KVM: selftests: Introduce "struct __kvm_pmu_event_filter" to manipulate filter

Add custom "__kvm_pmu_event_filter" structure to improve pmu event
filter settings. Simplifies event filter setup by organizing event
filter parameters in a cleaner, more organized way.

Alternatively, selftests could use a struct overlay ala vcpu_set_msr()
to avoid dynamically allocating the array:

        struct {
                struct kvm_msrs header;
                struct kvm_msr_entry entry;
        } buffer = {};

        memset(&buffer, 0, sizeof(buffer));
        buffer.header.nmsrs = 1;
        buffer.entry.index = msr_index;
        buffer.entry.data = msr_value;

but the extra layer added by the nested structs is counterproductive
to writing efficient, clean code.

Suggested-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Jinrong Liang <cloudliang@tencent.com>
Link: https://lore.kernel.org/r/20230810090945.16053-4-cloudliang@tencent.com
[sean: massage changelog to explain alternative]
Signed-off-by: Sean Christopherson <seanjc@google.com>
tools/testing/selftests/kvm/x86_64/pmu_event_filter_test.c