From: Sean Christopherson <seanjc@google.com>
To: Like Xu <like.xu.linux@gmail.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
Jim Mattson <jmattson@google.com>,
linux-kernel@vger.kernel.org, kvm@vger.kernel.org
Subject: Re: [kvm-unit-tests PATCH] x86: Add tests for Guest Processor Event Based Sampling (PEBS)
Date: Wed, 27 Jul 2022 22:42:10 +0000 [thread overview]
Message-ID: <YuG/QtIM/fvhLI/u@google.com> (raw)
In-Reply-To: <20220721103549.49543-9-likexu@tencent.com>
On Thu, Jul 21, 2022, Like Xu wrote:
> +union perf_capabilities {
> + struct {
> + u64 lbr_format:6;
> + u64 pebs_trap:1;
> + u64 pebs_arch_reg:1;
> + u64 pebs_format:4;
> + u64 smm_freeze:1;
> + /*
> + * PMU supports separate counter range for writing
> + * values > 32bit.
> + */
> + u64 full_width_write:1;
> + u64 pebs_baseline:1;
> + u64 perf_metrics:1;
> + u64 pebs_output_pt_available:1;
> + u64 anythread_deprecated:1;
> + };
> + u64 capabilities;
> +};
> +
> +union cpuid10_eax {
> + struct {
> + unsigned int version_id:8;
> + unsigned int num_counters:8;
> + unsigned int bit_width:8;
> + unsigned int mask_length:8;
> + } split;
> + unsigned int full;
> +} pmu_eax;
> +
> +union cpuid10_edx {
> + struct {
> + unsigned int num_counters_fixed:5;
> + unsigned int bit_width_fixed:8;
> + unsigned int reserved:19;
> + } split;
> + unsigned int full;
> +} pmu_edx;
The generic unions are hopefully unnecessary now that helpers are provided by
lib/x86/processor.h, e.g. for pmu_version().
I would prefer to have similar helpers instead of "union perf_capabilities",
but it's not a sticking point if helpers a signifiantly more painful to use.
> + if (!is_intel() || (pmu_eax.split.version_id < 2) ||
> + !(perf.capabilities & PERF_CAP_PEBS_FORMAT) ||
> + (rdmsr(MSR_IA32_MISC_ENABLE) & MSR_IA32_MISC_ENABLE_PEBS_UNAVAIL)) {
Split these up, it's really, really annoying to have to guess which one of the
four checks failed.
> + report_skip("This platform doesn't support guest PEBS.");
> + return 0;
This needs be be "return report_summary()", otherwise the test says pass when it
didn't do anyting:
TESTNAME=pmu_pebs TIMEOUT=90s ACCEL=kvm ./x86/run x86/pmu_pebs.flat -smp 1 -cpu host,migratable=no
PASS pmu_pebs
wait a second...
SKIP: This platform doesn't support guest PEBS.
E.g. (though if KUT can provide more information on why PERF_CAP_PEBS_FORMAT
may not be advertised, e.g. requires ICX+?, that would be nice to have)
if (!is_intel()) {
report_skip("PEBS is only supported on Intel CPUs");
return report_summary();
}
if (pmu_version() < 2) {
report_skip("Architectural PMU not available");
return report_summary();
}
if (!(perf.capabilities & PERF_CAP_PEBS_FORMAT)) {
report_skip("PEBS not enumerated in PERF_CAPABILITIES");
return report_summary();
}
if (rdmsr(MSR_IA32_MISC_ENABLE) & MSR_IA32_MISC_ENABLE_PEBS_UNAVAIL) {
report_skip("PEBS unavailable according to MISC_ENABLE");
return report_summary();
}
next prev parent reply other threads:[~2022-07-27 22:42 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-21 10:35 [PATCH v2 0/7] KVM: x86/pmu: Fix some corner cases including Intel PEBS Like Xu
2022-07-21 10:35 ` [PATCH v2 1/7] perf/x86/core: Update x86_pmu.pebs_capable for ICELAKE_{X,D} Like Xu
2022-08-12 7:52 ` Paolo Bonzini
2022-08-15 9:31 ` Peter Zijlstra
2022-08-15 9:43 ` Like Xu
2022-08-15 11:51 ` Peter Zijlstra
2022-08-15 12:48 ` Like Xu
2022-08-15 13:14 ` Peter Zijlstra
2022-08-15 13:06 ` Liang, Kan
2022-08-15 14:30 ` Peter Zijlstra
2022-08-16 11:57 ` Like Xu
2022-07-21 10:35 ` [PATCH v2 2/7] perf/x86/core: Completely disable guest PEBS via guest's global_ctrl Like Xu
2022-07-21 10:35 ` [PATCH v2 3/7] KVM: x86/pmu: Avoid setting BIT_ULL(-1) to pmu->host_cross_mapped_mask Like Xu
2022-07-21 10:35 ` [PATCH v2 4/7] KVM: x86/pmu: Don't generate PEBS records for emulated instructions Like Xu
2022-07-21 10:35 ` [PATCH v2 5/7] KVM: x86/pmu: Avoid using PEBS perf_events for normal counters Like Xu
2022-07-21 10:35 ` [PATCH v2 6/7] KVM: x86/pmu: Defer reprogram_counter() to kvm_pmu_handle_event() Like Xu
2022-07-21 10:35 ` [PATCH v2 7/7] KVM: x86/pmu: Defer counter emulated overflow via pmc->stale_counter Like Xu
2022-07-21 10:35 ` [kvm-unit-tests PATCH] x86: Add tests for Guest Processor Event Based Sampling (PEBS) Like Xu
2022-07-27 22:42 ` Sean Christopherson [this message]
2022-07-28 11:31 ` Like Xu
2022-08-02 11:07 ` [PATCH v2 0/7] KVM: x86/pmu: Fix some corner cases including Intel PEBS Like Xu
2022-08-11 7:10 ` Wanpeng Li
-- strict thread matches above, loose matches on Subject: below --
2022-07-13 12:24 [PATCH " Like Xu
2022-07-13 12:25 ` [kvm-unit-tests PATCH] x86: Add tests for Guest Processor Event Based Sampling (PEBS) Like Xu
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=YuG/QtIM/fvhLI/u@google.com \
--to=seanjc@google.com \
--cc=jmattson@google.com \
--cc=kvm@vger.kernel.org \
--cc=like.xu.linux@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=pbonzini@redhat.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.