[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <23b71d3f-af12-5ec0-e23c-40b478d2ae9b@gmail.com>
Date: Fri, 10 Nov 2023 10:52:04 +0800
From: Jinrong Liang <ljr.kernel@...il.com>
To: Sean Christopherson <seanjc@...gle.com>,
Paolo Bonzini <pbonzini@...hat.com>
Cc: kvm@...r.kernel.org, linux-kernel@...r.kernel.org,
Kan Liang <kan.liang@...ux.intel.com>,
Dapeng Mi <dapeng1.mi@...ux.intel.com>,
Jim Mattson <jmattson@...gle.com>,
Aaron Lewis <aaronlewis@...gle.com>,
Like Xu <likexu@...cent.com>,
Jinrong Liang <cloudliang@...cent.com>,
Jinrong Liang <ljr.kernel@...il.com>
Subject: Re: [PATCH v8 00/26] KVM: x86/pmu: selftests: Fixes and new tests
在 2023/11/10 10:12, Sean Christopherson 写道:
> Another round, another new pile of fixes and tests. My apologies for
> sending so many versions of this thing, I thought v7 was going to be the
> last one. *sigh*
>
> Fix bugs where KVM incorrectly refuses to virtualize fixed counters and
> events whose encodings match unsupported arch events, and add a PMU
> counters selftest to verify the behavior.
>
> As an aside, my hope is that in the long term, we can build out the PMU
> selftests and deprecate the PMU tests in KUT so that we have everything
> in-kernel and in one spot.
I am currently working on enhancing the PMU selftests to achieve this goal.
>
> v8:
> - Collect reviews. [Jim, Dapeng, Kan]
> - Tweak names for the RDPMC flags in the selftests #defines.
> - Get the event selectors used to virtualize fixed straight from perf
> instead of hardcoding the (wrong) selectors in KVM. [Kan]
> - Rename an "eventsel" field to "event" for a patch that gets blasted
> away in the end anyways. [Jim]
> - Add patches to fix RDPMC emulation and to test the behavior on Intel.
> I spot tested on AMD and spent ~30 minutes trying to squeeze in the
> bare minimum AMD support, but the PMU implementations between Intel
> and AMD are juuuust different enough to make adding AMD support non-
> trivial, and this series is already way too big.
I'm working on selftests for AMD PMU counters. Can I post a separate
AMD PMU counters selftests patchset after this patchset is merged?
Thanks,
Jinrong
>
> v7:
> - https://lore.kernel.org/all/20231108003135.546002-1-seanjc@google.com
> - Drop patches that unnecessarily sanitized supported CPUID. [Jim]
> - Purge the array of architectural event encodings. [Jim, Dapeng]
> - Clean up pmu.h to remove useless macros, and make it easier to use the
> new macros. [Jim]
> - Port more of pmu_event_filter_test.c to pmu.h macros. [Jim, Jinrong]
> - Clean up test comments and error messages. [Jim]
> - Sanity check the value provided to vcpu_set_cpuid_property(). [Jim]
>
> v6:
> - https://lore.kernel.org/all/20231104000239.367005-1-seanjc@google.com
> - Test LLC references/misses with CFLUSH{OPT}. [Jim]
> - Make the tests play nice without PERF_CAPABILITIES. [Mingwei]
> - Don't squash eventsels that happen to match an unsupported arch event. [Kan]
> - Test PMC counters with forced emulation (don't ask how long it took me to
> figure out how to read integer module params).
>
> v5: https://lore.kernel.org/all/20231024002633.2540714-1-seanjc@google.com
> v4: https://lore.kernel.org/all/20230911114347.85882-1-cloudliang@tencent.com
> v3: https://lore.kernel.org/kvm/20230814115108.45741-1-cloudliang@tencent.com
>
> Jinrong Liang (7):
> KVM: selftests: Add vcpu_set_cpuid_property() to set properties
> KVM: selftests: Add pmu.h and lib/pmu.c for common PMU assets
> KVM: selftests: Test Intel PMU architectural events on gp counters
> KVM: selftests: Test Intel PMU architectural events on fixed counters
> KVM: selftests: Test consistency of CPUID with num of gp counters
> KVM: selftests: Test consistency of CPUID with num of fixed counters
> KVM: selftests: Add functional test for Intel's fixed PMU counters
>
> Sean Christopherson (19):
> KVM: x86/pmu: Always treat Fixed counters as available when supported
> KVM: x86/pmu: Allow programming events that match unsupported arch
> events
> KVM: x86/pmu: Remove KVM's enumeration of Intel's architectural
> encodings
> KVM: x86/pmu: Setup fixed counters' eventsel during PMU initialization
> KVM: x86/pmu: Get eventsel for fixed counters from perf
> KVM: x86/pmu: Don't ignore bits 31:30 for RDPMC index on AMD
> KVM: x86/pmu: Apply "fast" RDPMC only to Intel PMUs
> KVM: x86/pmu: Disallow "fast" RDPMC for architectural Intel PMUs
> KVM: selftests: Drop the "name" param from KVM_X86_PMU_FEATURE()
> KVM: selftests: Extend {kvm,this}_pmu_has() to support fixed counters
> KVM: selftests: Expand PMU counters test to verify LLC events
> KVM: selftests: Add a helper to query if the PMU module param is
> enabled
> KVM: selftests: Add helpers to read integer module params
> KVM: selftests: Query module param to detect FEP in MSR filtering test
> KVM: selftests: Move KVM_FEP macro into common library header
> KVM: selftests: Test PMC virtualization with forced emulation
> KVM: selftests: Add a forced emulation variation of KVM_ASM_SAFE()
> KVM: selftests: Add helpers for safe and safe+forced RDMSR, RDPMC, and
> XGETBV
> KVM: selftests: Extend PMU counters test to validate RDPMC after WRMSR
>
> arch/x86/include/asm/kvm-x86-pmu-ops.h | 1 -
> arch/x86/kvm/pmu.c | 4 +-
> arch/x86/kvm/pmu.h | 1 -
> arch/x86/kvm/svm/pmu.c | 10 +-
> arch/x86/kvm/vmx/pmu_intel.c | 133 ++--
> tools/testing/selftests/kvm/Makefile | 2 +
> .../selftests/kvm/include/kvm_util_base.h | 4 +
> tools/testing/selftests/kvm/include/pmu.h | 97 +++
> .../selftests/kvm/include/x86_64/processor.h | 148 ++++-
> tools/testing/selftests/kvm/lib/kvm_util.c | 62 +-
> tools/testing/selftests/kvm/lib/pmu.c | 31 +
> .../selftests/kvm/lib/x86_64/processor.c | 15 +-
> .../selftests/kvm/x86_64/pmu_counters_test.c | 607 ++++++++++++++++++
> .../kvm/x86_64/pmu_event_filter_test.c | 143 ++---
> .../smaller_maxphyaddr_emulation_test.c | 2 +-
> .../kvm/x86_64/userspace_msr_exit_test.c | 29 +-
> .../selftests/kvm/x86_64/vmx_pmu_caps_test.c | 2 +-
> 17 files changed, 1035 insertions(+), 256 deletions(-)
> create mode 100644 tools/testing/selftests/kvm/include/pmu.h
> create mode 100644 tools/testing/selftests/kvm/lib/pmu.c
> create mode 100644 tools/testing/selftests/kvm/x86_64/pmu_counters_test.c
>
>
> base-commit: 45b890f7689eb0aba454fc5831d2d79763781677
>
Powered by blists - more mailing lists