public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Jinrong Liang <ljr.kernel@gmail.com>
To: Sean Christopherson <seanjc@google.com>,
	Paolo Bonzini <pbonzini@redhat.com>
Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
	Kan Liang <kan.liang@linux.intel.com>,
	Dapeng Mi <dapeng1.mi@linux.intel.com>,
	Jim Mattson <jmattson@google.com>,
	Aaron Lewis <aaronlewis@google.com>, Like Xu <likexu@tencent.com>,
	Jinrong Liang <cloudliang@tencent.com>,
	Jinrong Liang <ljr.kernel@gmail.com>
Subject: Re: [PATCH v8 00/26] KVM: x86/pmu: selftests: Fixes and new tests
Date: Fri, 10 Nov 2023 10:52:04 +0800	[thread overview]
Message-ID: <23b71d3f-af12-5ec0-e23c-40b478d2ae9b@gmail.com> (raw)
In-Reply-To: <20231110021306.1269082-1-seanjc@google.com>

在 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
> 


      parent reply	other threads:[~2023-11-10  2:52 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-10  2:12 [PATCH v8 00/26] KVM: x86/pmu: selftests: Fixes and new tests Sean Christopherson
2023-11-10  2:12 ` [PATCH v8 01/26] KVM: x86/pmu: Always treat Fixed counters as available when supported Sean Christopherson
2023-11-10  2:12 ` [PATCH v8 02/26] KVM: x86/pmu: Allow programming events that match unsupported arch events Sean Christopherson
2023-11-10  2:12 ` [PATCH v8 03/26] KVM: x86/pmu: Remove KVM's enumeration of Intel's architectural encodings Sean Christopherson
2023-11-10  2:12 ` [PATCH v8 04/26] KVM: x86/pmu: Setup fixed counters' eventsel during PMU initialization Sean Christopherson
2023-11-10  2:12 ` [PATCH v8 05/26] KVM: x86/pmu: Get eventsel for fixed counters from perf Sean Christopherson
2023-11-10 13:48   ` Liang, Kan
2023-11-10  2:12 ` [PATCH v8 06/26] KVM: x86/pmu: Don't ignore bits 31:30 for RDPMC index on AMD Sean Christopherson
2023-11-10  2:12 ` [PATCH v8 07/26] KVM: x86/pmu: Apply "fast" RDPMC only to Intel PMUs Sean Christopherson
2023-11-10  3:22   ` Mi, Dapeng
2023-11-10 14:51     ` Sean Christopherson
2023-11-13  1:24       ` Mi, Dapeng
2023-11-10  2:12 ` [PATCH v8 08/26] KVM: x86/pmu: Disallow "fast" RDPMC for architectural " Sean Christopherson
2023-11-10  6:07   ` Mi, Dapeng
2023-11-10 23:32     ` Sean Christopherson
2023-11-10  2:12 ` [PATCH v8 09/26] KVM: selftests: Add vcpu_set_cpuid_property() to set properties Sean Christopherson
2023-11-10  2:12 ` [PATCH v8 10/26] KVM: selftests: Drop the "name" param from KVM_X86_PMU_FEATURE() Sean Christopherson
2023-11-10  2:12 ` [PATCH v8 11/26] KVM: selftests: Extend {kvm,this}_pmu_has() to support fixed counters Sean Christopherson
2023-11-10  2:12 ` [PATCH v8 12/26] KVM: selftests: Add pmu.h and lib/pmu.c for common PMU assets Sean Christopherson
2023-11-10  2:12 ` [PATCH v8 13/26] KVM: selftests: Test Intel PMU architectural events on gp counters Sean Christopherson
2023-11-10  2:12 ` [PATCH v8 14/26] KVM: selftests: Test Intel PMU architectural events on fixed counters Sean Christopherson
2023-11-10  2:12 ` [PATCH v8 15/26] KVM: selftests: Test consistency of CPUID with num of gp counters Sean Christopherson
2023-11-10  2:12 ` [PATCH v8 16/26] KVM: selftests: Test consistency of CPUID with num of fixed counters Sean Christopherson
2023-11-10  2:12 ` [PATCH v8 17/26] KVM: selftests: Add functional test for Intel's fixed PMU counters Sean Christopherson
2023-11-10  2:12 ` [PATCH v8 18/26] KVM: selftests: Expand PMU counters test to verify LLC events Sean Christopherson
2023-11-10  2:12 ` [PATCH v8 19/26] KVM: selftests: Add a helper to query if the PMU module param is enabled Sean Christopherson
2023-11-10  2:13 ` [PATCH v8 20/26] KVM: selftests: Add helpers to read integer module params Sean Christopherson
2023-11-10  2:13 ` [PATCH v8 21/26] KVM: selftests: Query module param to detect FEP in MSR filtering test Sean Christopherson
2023-11-10  2:13 ` [PATCH v8 22/26] KVM: selftests: Move KVM_FEP macro into common library header Sean Christopherson
2023-11-10  2:13 ` [PATCH v8 23/26] KVM: selftests: Test PMC virtualization with forced emulation Sean Christopherson
2023-11-10  2:13 ` [PATCH v8 24/26] KVM: selftests: Add a forced emulation variation of KVM_ASM_SAFE() Sean Christopherson
2023-11-10  2:13 ` [PATCH v8 25/26] KVM: selftests: Add helpers for safe and safe+forced RDMSR, RDPMC, and XGETBV Sean Christopherson
2023-11-10  2:13 ` [PATCH v8 26/26] KVM: selftests: Extend PMU counters test to validate RDPMC after WRMSR Sean Christopherson
2023-11-13 11:41   ` Jinrong Liang
2023-11-13 13:40     ` Sean Christopherson
2023-11-14  3:07       ` Jinrong Liang
2023-11-10  2:52 ` Jinrong Liang [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=23b71d3f-af12-5ec0-e23c-40b478d2ae9b@gmail.com \
    --to=ljr.kernel@gmail.com \
    --cc=aaronlewis@google.com \
    --cc=cloudliang@tencent.com \
    --cc=dapeng1.mi@linux.intel.com \
    --cc=jmattson@google.com \
    --cc=kan.liang@linux.intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=likexu@tencent.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=seanjc@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox