From: Namhyung Kim <namhyung@kernel.org>
To: "Liang, Kan" <kan.liang@linux.intel.com>
Cc: "Mi, Dapeng" <dapeng1.mi@linux.intel.com>,
Mingwei Zhang <mizhang@google.com>,
Sean Christopherson <seanjc@google.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Xiong Zhang <xiong.y.zhang@intel.com>,
Kan Liang <kan.liang@intel.com>,
Zhenyu Wang <zhenyuw@linux.intel.com>,
Manali Shukla <manali.shukla@amd.com>,
Sandipan Das <sandipan.das@amd.com>,
Jim Mattson <jmattson@google.com>,
Stephane Eranian <eranian@google.com>,
Ian Rogers <irogers@google.com>,
gce-passthrou-pmu-dev@google.com,
Samantha Alt <samantha.alt@intel.com>,
Zhiyuan Lv <zhiyuan.lv@intel.com>,
Yanfei Xu <yanfei.xu@intel.com>,
Like Xu <like.xu.linux@gmail.com>,
Peter Zijlstra <peterz@infradead.org>,
Raghavendra Rao Ananta <rananta@google.com>,
kvm@vger.kernel.org, linux-perf-users@vger.kernel.org
Subject: Re: [RFC PATCH v3 06/58] perf: Support get/put passthrough PMU interfaces
Date: Mon, 9 Sep 2024 15:17:20 -0700 [thread overview]
Message-ID: <Zt9z8J4wD2VXe2sE@google.com> (raw)
In-Reply-To: <a585d90b-91f4-49de-bcba-5c2b45d339bc@linux.intel.com>
Hello,
On Fri, Sep 06, 2024 at 11:40:51AM -0400, Liang, Kan wrote:
>
>
> On 2024-09-06 6:59 a.m., Mi, Dapeng wrote:
> >
> > On 8/1/2024 12:58 PM, Mingwei Zhang wrote:
> >> From: Kan Liang <kan.liang@linux.intel.com>
> >>
> >> Currently, the guest and host share the PMU resources when a guest is
> >> running. KVM has to create an extra virtual event to simulate the
> >> guest's event, which brings several issues, e.g., high overhead, not
> >> accuracy and etc.
> >>
> >> A new passthrough PMU method is proposed to address the issue. It requires
> >> that the PMU resources can be fully occupied by the guest while it's
> >> running. Two new interfaces are implemented to fulfill the requirement.
> >> The hypervisor should invoke the interface while creating a guest which
> >> wants the passthrough PMU capability.
> >>
> >> The PMU resources should only be temporarily occupied as a whole when a
> >> guest is running. When the guest is out, the PMU resources are still
> >> shared among different users.
> >>
> >> The exclude_guest event modifier is used to guarantee the exclusive
> >> occupation of the PMU resources. When creating a guest, the hypervisor
> >> should check whether there are !exclude_guest events in the system.
> >> If yes, the creation should fail. Because some PMU resources have been
> >> occupied by other users.
> >> If no, the PMU resources can be safely accessed by the guest directly.
> >> Perf guarantees that no new !exclude_guest events are created when a
> >> guest is running.
> >>
> >> Only the passthrough PMU is affected, but not for other PMU e.g., uncore
> >> and SW PMU. The behavior of those PMUs are not changed. The guest
> >> enter/exit interfaces should only impact the supported PMUs.
> >> Add a new PERF_PMU_CAP_PASSTHROUGH_VPMU flag to indicate the PMUs that
> >> support the feature.
> >>
> >> Add nr_include_guest_events to track the !exclude_guest events of PMU
> >> with PERF_PMU_CAP_PASSTHROUGH_VPMU.
> >>
> >> Suggested-by: Sean Christopherson <seanjc@google.com>
> >> Signed-off-by: Kan Liang <kan.liang@linux.intel.com>
> >> Tested-by: Yongwei Ma <yongwei.ma@intel.com>
> >> Signed-off-by: Mingwei Zhang <mizhang@google.com>
> >> ---
> >> include/linux/perf_event.h | 10 ++++++
> >> kernel/events/core.c | 66 ++++++++++++++++++++++++++++++++++++++
> >> 2 files changed, 76 insertions(+)
> >>
> >> diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
> >> index a5304ae8c654..45d1ea82aa21 100644
> >> --- a/include/linux/perf_event.h
> >> +++ b/include/linux/perf_event.h
> >> @@ -291,6 +291,7 @@ struct perf_event_pmu_context;
> >> #define PERF_PMU_CAP_NO_EXCLUDE 0x0040
> >> #define PERF_PMU_CAP_AUX_OUTPUT 0x0080
> >> #define PERF_PMU_CAP_EXTENDED_HW_TYPE 0x0100
> >> +#define PERF_PMU_CAP_PASSTHROUGH_VPMU 0x0200
> >>
> >> struct perf_output_handle;
> >>
> >> @@ -1728,6 +1729,8 @@ extern void perf_event_task_tick(void);
> >> extern int perf_event_account_interrupt(struct perf_event *event);
> >> extern int perf_event_period(struct perf_event *event, u64 value);
> >> extern u64 perf_event_pause(struct perf_event *event, bool reset);
> >> +int perf_get_mediated_pmu(void);
> >> +void perf_put_mediated_pmu(void);
> >> #else /* !CONFIG_PERF_EVENTS: */
> >> static inline void *
> >> perf_aux_output_begin(struct perf_output_handle *handle,
> >> @@ -1814,6 +1817,13 @@ static inline u64 perf_event_pause(struct perf_event *event, bool reset)
> >> {
> >> return 0;
> >> }
> >> +
> >> +static inline int perf_get_mediated_pmu(void)
> >> +{
> >> + return 0;
> >> +}
> >> +
> >> +static inline void perf_put_mediated_pmu(void) { }
> >> #endif
> >>
> >> #if defined(CONFIG_PERF_EVENTS) && defined(CONFIG_CPU_SUP_INTEL)
> >> diff --git a/kernel/events/core.c b/kernel/events/core.c
> >> index 8f908f077935..45868d276cde 100644
> >> --- a/kernel/events/core.c
> >> +++ b/kernel/events/core.c
> >> @@ -402,6 +402,20 @@ static atomic_t nr_bpf_events __read_mostly;
> >> static atomic_t nr_cgroup_events __read_mostly;
> >> static atomic_t nr_text_poke_events __read_mostly;
> >> static atomic_t nr_build_id_events __read_mostly;
> >> +static atomic_t nr_include_guest_events __read_mostly;
> >> +
> >> +static atomic_t nr_mediated_pmu_vms;
> >> +static DEFINE_MUTEX(perf_mediated_pmu_mutex);
> >> +
> >> +/* !exclude_guest event of PMU with PERF_PMU_CAP_PASSTHROUGH_VPMU */
> >> +static inline bool is_include_guest_event(struct perf_event *event)
> >> +{
> >> + if ((event->pmu->capabilities & PERF_PMU_CAP_PASSTHROUGH_VPMU) &&
> >> + !event->attr.exclude_guest)
> >> + return true;
> >> +
> >> + return false;
> >> +}
> >>
> >> static LIST_HEAD(pmus);
> >> static DEFINE_MUTEX(pmus_lock);
> >> @@ -5212,6 +5226,9 @@ static void _free_event(struct perf_event *event)
> >>
> >> unaccount_event(event);
> >>
> >> + if (is_include_guest_event(event))
> >> + atomic_dec(&nr_include_guest_events);
> >> +
> >> security_perf_event_free(event);
> >>
> >> if (event->rb) {
> >> @@ -5769,6 +5786,36 @@ u64 perf_event_pause(struct perf_event *event, bool reset)
> >> }
> >> EXPORT_SYMBOL_GPL(perf_event_pause);
> >>
> >> +/*
> >> + * Currently invoked at VM creation to
> >> + * - Check whether there are existing !exclude_guest events of PMU with
> >> + * PERF_PMU_CAP_PASSTHROUGH_VPMU
> >> + * - Set nr_mediated_pmu_vms to prevent !exclude_guest event creation on
> >> + * PMUs with PERF_PMU_CAP_PASSTHROUGH_VPMU
> >> + *
> >> + * No impact for the PMU without PERF_PMU_CAP_PASSTHROUGH_VPMU. The perf
> >> + * still owns all the PMU resources.
> >> + */
> >> +int perf_get_mediated_pmu(void)
> >> +{
> >> + guard(mutex)(&perf_mediated_pmu_mutex);
> >> + if (atomic_inc_not_zero(&nr_mediated_pmu_vms))
> >> + return 0;
> >> +
> >> + if (atomic_read(&nr_include_guest_events))
> >> + return -EBUSY;
> >> +
> >> + atomic_inc(&nr_mediated_pmu_vms);
> >> + return 0;
> >> +}
> >> +EXPORT_SYMBOL_GPL(perf_get_mediated_pmu);
> >> +
> >> +void perf_put_mediated_pmu(void)
> >> +{
> >> + atomic_dec(&nr_mediated_pmu_vms);
> >> +}
> >> +EXPORT_SYMBOL_GPL(perf_put_mediated_pmu);
> >> +
> >> /*
> >> * Holding the top-level event's child_mutex means that any
> >> * descendant process that has inherited this event will block
> >> @@ -11907,6 +11954,17 @@ static void account_event(struct perf_event *event)
> >> account_pmu_sb_event(event);
> >> }
> >>
> >> +static int perf_account_include_guest_event(void)
> >> +{
> >> + guard(mutex)(&perf_mediated_pmu_mutex);
> >> +
> >> + if (atomic_read(&nr_mediated_pmu_vms))
> >> + return -EACCES;
> >
> > Kan, Namhyung posted a patchset
> > https://lore.kernel.org/all/20240904064131.2377873-1-namhyung@kernel.org/
> > which would remove to set exclude_guest flag from perf tools by default.
> > This may impact current mediated vPMU solution, but fortunately the
> > patchset provides a fallback mechanism to add exclude_guest flag if kernel
> > returns "EOPNOTSUPP".
> >
> > So we'd better return "EOPNOTSUPP" instead of "EACCES" here. BTW, returning
> > "EOPNOTSUPP" here looks more reasonable than "EACCES".
>
> It seems the existing Apple M1 PMU has ready returned "EOPNOTSUPP" for
> the !exclude_guest. Yes, we should use the same error code.
Yep, it'd be much easier to handle if it returns the same error code.
Thanks,
Namhyung
next prev parent reply other threads:[~2024-09-09 22:17 UTC|newest]
Thread overview: 183+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-01 4:58 [RFC PATCH v3 00/58] Mediated Passthrough vPMU 3.0 for x86 Mingwei Zhang
2024-08-01 4:58 ` [RFC PATCH v3 01/58] sched/core: Move preempt_model_*() helpers from sched.h to preempt.h Mingwei Zhang
2024-08-01 4:58 ` [RFC PATCH v3 02/58] sched/core: Drop spinlocks on contention iff kernel is preemptible Mingwei Zhang
2024-08-01 4:58 ` [RFC PATCH v3 03/58] perf/x86: Do not set bit width for unavailable counters Mingwei Zhang
2024-08-01 4:58 ` [RFC PATCH v3 04/58] x86/msr: Define PerfCntrGlobalStatusSet register Mingwei Zhang
2024-08-01 4:58 ` [RFC PATCH v3 05/58] x86/msr: Introduce MSR_CORE_PERF_GLOBAL_STATUS_SET Mingwei Zhang
2024-08-01 4:58 ` [RFC PATCH v3 06/58] perf: Support get/put passthrough PMU interfaces Mingwei Zhang
2024-09-06 10:59 ` Mi, Dapeng
2024-09-06 15:40 ` Liang, Kan
2024-09-09 22:17 ` Namhyung Kim [this message]
2024-08-01 4:58 ` [RFC PATCH v3 07/58] perf: Skip pmu_ctx based on event_type Mingwei Zhang
2024-10-11 11:18 ` Peter Zijlstra
2024-08-01 4:58 ` [RFC PATCH v3 08/58] perf: Clean up perf ctx time Mingwei Zhang
2024-10-11 11:39 ` Peter Zijlstra
2024-08-01 4:58 ` [RFC PATCH v3 09/58] perf: Add a EVENT_GUEST flag Mingwei Zhang
2024-08-21 5:27 ` Mi, Dapeng
2024-08-21 13:16 ` Liang, Kan
2024-10-11 11:41 ` Peter Zijlstra
2024-10-11 13:16 ` Liang, Kan
2024-10-11 18:42 ` Peter Zijlstra
2024-10-11 19:49 ` Liang, Kan
2024-10-14 10:55 ` Peter Zijlstra
2024-10-14 11:14 ` Peter Zijlstra
2024-10-14 15:06 ` Liang, Kan
2024-12-13 9:37 ` Sandipan Das
2024-12-13 16:26 ` Liang, Kan
2024-08-01 4:58 ` [RFC PATCH v3 10/58] perf: Add generic exclude_guest support Mingwei Zhang
2024-10-14 11:20 ` Peter Zijlstra
2024-10-14 15:27 ` Liang, Kan
2024-08-01 4:58 ` [RFC PATCH v3 11/58] x86/irq: Factor out common code for installing kvm irq handler Mingwei Zhang
2024-08-01 4:58 ` [RFC PATCH v3 12/58] perf: core/x86: Register a new vector for KVM GUEST PMI Mingwei Zhang
2024-09-09 22:11 ` Colton Lewis
2024-09-10 4:59 ` Mi, Dapeng
2024-09-10 16:45 ` Colton Lewis
2024-08-01 4:58 ` [RFC PATCH v3 13/58] KVM: x86/pmu: Register KVM_GUEST_PMI_VECTOR handler Mingwei Zhang
2024-08-01 4:58 ` [RFC PATCH v3 14/58] perf: Add switch_interrupt() interface Mingwei Zhang
2024-09-19 6:02 ` Manali Shukla
2024-09-19 13:00 ` Liang, Kan
2024-09-20 5:09 ` Manali Shukla
2024-09-23 18:49 ` Mingwei Zhang
2024-09-24 16:55 ` Manali Shukla
2024-10-14 11:59 ` Peter Zijlstra
2024-10-14 16:15 ` Liang, Kan
2024-10-14 17:45 ` Peter Zijlstra
2024-10-15 15:59 ` Liang, Kan
2024-10-14 11:56 ` Peter Zijlstra
2024-10-14 15:40 ` Liang, Kan
2024-10-14 17:47 ` Peter Zijlstra
2024-10-14 17:51 ` Peter Zijlstra
2024-10-14 12:03 ` Peter Zijlstra
2024-10-14 15:51 ` Liang, Kan
2024-10-14 17:49 ` Peter Zijlstra
2024-10-15 13:23 ` Liang, Kan
2024-10-14 13:52 ` Peter Zijlstra
2024-10-14 15:57 ` Liang, Kan
2024-08-01 4:58 ` [RFC PATCH v3 15/58] perf/x86: Support switch_interrupt interface Mingwei Zhang
2024-09-09 22:11 ` Colton Lewis
2024-09-10 5:00 ` Mi, Dapeng
2024-10-24 19:45 ` Chen, Zide
2024-10-25 0:52 ` Mi, Dapeng
2024-08-01 4:58 ` [RFC PATCH v3 16/58] perf/x86: Forbid PMI handler when guest own PMU Mingwei Zhang
2024-09-02 7:56 ` Mi, Dapeng
2024-08-01 4:58 ` [RFC PATCH v3 17/58] perf: core/x86: Plumb passthrough PMU capability from x86_pmu to x86_pmu_cap Mingwei Zhang
2024-08-01 4:58 ` [RFC PATCH v3 18/58] KVM: x86/pmu: Introduce enable_passthrough_pmu module parameter Mingwei Zhang
2024-11-19 14:30 ` Sean Christopherson
2024-11-20 3:21 ` Mi, Dapeng
2024-11-20 17:06 ` Sean Christopherson
2025-01-15 0:17 ` Mingwei Zhang
2025-01-15 2:52 ` Mi, Dapeng
2024-08-01 4:58 ` [RFC PATCH v3 19/58] KVM: x86/pmu: Plumb through pass-through PMU to vcpu for Intel CPUs Mingwei Zhang
2024-11-19 14:54 ` Sean Christopherson
2024-11-20 3:47 ` Mi, Dapeng
2024-11-20 16:45 ` Sean Christopherson
2024-11-21 0:29 ` Mi, Dapeng
2024-08-01 4:58 ` [RFC PATCH v3 20/58] KVM: x86/pmu: Always set global enable bits in passthrough mode Mingwei Zhang
2024-11-19 15:37 ` Sean Christopherson
2024-11-20 5:19 ` Mi, Dapeng
2024-11-20 17:09 ` Sean Christopherson
2024-11-21 0:37 ` Mi, Dapeng
2024-08-01 4:58 ` [RFC PATCH v3 21/58] KVM: x86/pmu: Add a helper to check if passthrough PMU is enabled Mingwei Zhang
2024-08-01 4:58 ` [RFC PATCH v3 22/58] KVM: x86/pmu: Add host_perf_cap and initialize it in kvm_x86_vendor_init() Mingwei Zhang
2024-11-19 15:43 ` Sean Christopherson
2024-11-20 5:21 ` Mi, Dapeng
2024-08-01 4:58 ` [RFC PATCH v3 23/58] KVM: x86/pmu: Allow RDPMC pass through when all counters exposed to guest Mingwei Zhang
2024-11-19 16:32 ` Sean Christopherson
2024-11-20 5:31 ` Mi, Dapeng
2025-01-22 5:08 ` Mi, Dapeng
2024-08-01 4:58 ` [RFC PATCH v3 24/58] KVM: x86/pmu: Introduce macro PMU_CAP_PERF_METRICS Mingwei Zhang
2024-11-19 17:03 ` Sean Christopherson
2024-11-20 5:44 ` Mi, Dapeng
2024-11-20 17:21 ` Sean Christopherson
2024-08-01 4:58 ` [RFC PATCH v3 25/58] KVM: x86/pmu: Introduce PMU operator to check if rdpmc passthrough allowed Mingwei Zhang
2024-11-19 17:32 ` Sean Christopherson
2024-11-20 6:22 ` Mi, Dapeng
2024-08-01 4:58 ` [RFC PATCH v3 26/58] KVM: x86/pmu: Manage MSR interception for IA32_PERF_GLOBAL_CTRL Mingwei Zhang
2024-08-06 7:04 ` Mi, Dapeng
2024-10-24 20:26 ` Chen, Zide
2024-10-25 2:36 ` Mi, Dapeng
2024-11-19 18:16 ` Sean Christopherson
2024-11-20 7:56 ` Mi, Dapeng
2024-08-01 4:58 ` [RFC PATCH v3 27/58] KVM: x86/pmu: Create a function prototype to disable MSR interception Mingwei Zhang
2024-10-24 19:58 ` Chen, Zide
2024-10-25 2:50 ` Mi, Dapeng
2024-11-19 18:17 ` Sean Christopherson
2024-11-20 7:57 ` Mi, Dapeng
2024-08-01 4:58 ` [RFC PATCH v3 28/58] KVM: x86/pmu: Add intel_passthrough_pmu_msrs() to pass-through PMU MSRs Mingwei Zhang
2024-11-19 18:24 ` Sean Christopherson
2024-11-20 10:12 ` Mi, Dapeng
2024-11-20 18:32 ` Sean Christopherson
2024-08-01 4:58 ` [RFC PATCH v3 29/58] KVM: x86/pmu: Avoid legacy vPMU code when accessing global_ctrl in passthrough vPMU Mingwei Zhang
2024-08-01 4:58 ` [RFC PATCH v3 30/58] KVM: x86/pmu: Exclude PMU MSRs in vmx_get_passthrough_msr_slot() Mingwei Zhang
2024-09-02 7:51 ` Mi, Dapeng
2024-08-01 4:58 ` [RFC PATCH v3 31/58] KVM: x86/pmu: Add counter MSR and selector MSR index into struct kvm_pmc Mingwei Zhang
2024-11-19 18:58 ` Sean Christopherson
2024-11-20 11:50 ` Mi, Dapeng
2024-11-20 17:30 ` Sean Christopherson
2024-11-21 0:56 ` Mi, Dapeng
2024-08-01 4:58 ` [RFC PATCH v3 32/58] KVM: x86/pmu: Introduce PMU operation prototypes for save/restore PMU context Mingwei Zhang
2024-08-01 4:58 ` [RFC PATCH v3 33/58] KVM: x86/pmu: Implement the save/restore of PMU state for Intel CPU Mingwei Zhang
2024-08-06 7:27 ` Mi, Dapeng
2024-08-01 4:58 ` [RFC PATCH v3 34/58] KVM: x86/pmu: Make check_pmu_event_filter() an exported function Mingwei Zhang
2024-08-01 4:58 ` [RFC PATCH v3 35/58] KVM: x86/pmu: Allow writing to event selector for GP counters if event is allowed Mingwei Zhang
2024-08-01 4:58 ` [RFC PATCH v3 36/58] KVM: x86/pmu: Allow writing to fixed counter selector if counter is exposed Mingwei Zhang
2024-09-02 7:59 ` Mi, Dapeng
2024-08-01 4:58 ` [RFC PATCH v3 37/58] KVM: x86/pmu: Switch IA32_PERF_GLOBAL_CTRL at VM boundary Mingwei Zhang
2024-10-24 20:26 ` Chen, Zide
2024-10-25 2:51 ` Mi, Dapeng
2024-11-19 1:46 ` Sean Christopherson
2024-11-19 5:20 ` Mi, Dapeng
2024-11-19 13:44 ` Sean Christopherson
2024-11-20 2:08 ` Mi, Dapeng
2024-10-31 3:14 ` Mi, Dapeng
2024-08-01 4:58 ` [RFC PATCH v3 38/58] KVM: x86/pmu: Exclude existing vLBR logic from the passthrough PMU Mingwei Zhang
2024-11-20 18:42 ` Sean Christopherson
2024-11-21 1:13 ` Mi, Dapeng
2024-08-01 4:58 ` [RFC PATCH v3 39/58] KVM: x86/pmu: Notify perf core at KVM context switch boundary Mingwei Zhang
2024-08-01 4:58 ` [RFC PATCH v3 40/58] KVM: x86/pmu: Grab x86 core PMU for passthrough PMU VM Mingwei Zhang
2024-11-20 18:46 ` Sean Christopherson
2024-11-21 2:04 ` Mi, Dapeng
2024-08-01 4:58 ` [RFC PATCH v3 41/58] KVM: x86/pmu: Add support for PMU context switch at VM-exit/enter Mingwei Zhang
2024-10-24 19:57 ` Chen, Zide
2024-10-25 2:55 ` Mi, Dapeng
2024-08-01 4:58 ` [RFC PATCH v3 42/58] KVM: x86/pmu: Introduce PMU operator to increment counter Mingwei Zhang
2024-08-01 4:58 ` [RFC PATCH v3 43/58] KVM: x86/pmu: Introduce PMU operator for setting counter overflow Mingwei Zhang
2024-10-25 16:16 ` Chen, Zide
2024-10-27 12:06 ` Mi, Dapeng
2024-11-20 18:48 ` Sean Christopherson
2024-11-21 2:05 ` Mi, Dapeng
2024-08-01 4:58 ` [RFC PATCH v3 44/58] KVM: x86/pmu: Implement emulated counter increment for passthrough PMU Mingwei Zhang
2024-11-20 20:13 ` Sean Christopherson
2024-11-21 2:27 ` Mi, Dapeng
2024-08-01 4:58 ` [RFC PATCH v3 45/58] KVM: x86/pmu: Update pmc_{read,write}_counter() to disconnect perf API Mingwei Zhang
2024-11-20 20:19 ` Sean Christopherson
2024-11-21 2:52 ` Mi, Dapeng
2024-08-01 4:58 ` [RFC PATCH v3 46/58] KVM: x86/pmu: Disconnect counter reprogram logic from passthrough PMU Mingwei Zhang
2024-11-20 20:40 ` Sean Christopherson
2024-11-21 3:02 ` Mi, Dapeng
2024-08-01 4:58 ` [RFC PATCH v3 47/58] KVM: nVMX: Add nested virtualization support for " Mingwei Zhang
2024-11-20 20:52 ` Sean Christopherson
2024-11-21 3:14 ` Mi, Dapeng
2024-08-01 4:58 ` [RFC PATCH v3 48/58] perf/x86/intel: Support PERF_PMU_CAP_PASSTHROUGH_VPMU Mingwei Zhang
2024-08-02 17:50 ` Liang, Kan
2024-08-01 4:58 ` [RFC PATCH v3 49/58] KVM: x86/pmu/svm: Set passthrough capability for vcpus Mingwei Zhang
2024-08-01 4:58 ` [RFC PATCH v3 50/58] KVM: x86/pmu/svm: Set enable_passthrough_pmu module parameter Mingwei Zhang
2024-08-01 4:59 ` [RFC PATCH v3 51/58] KVM: x86/pmu/svm: Allow RDPMC pass through when all counters exposed to guest Mingwei Zhang
2024-08-01 4:59 ` [RFC PATCH v3 52/58] KVM: x86/pmu/svm: Implement callback to disable MSR interception Mingwei Zhang
2024-11-20 21:02 ` Sean Christopherson
2024-11-21 3:24 ` Mi, Dapeng
2024-08-01 4:59 ` [RFC PATCH v3 53/58] KVM: x86/pmu/svm: Set GuestOnly bit and clear HostOnly bit when guest write to event selectors Mingwei Zhang
2024-11-20 21:38 ` Sean Christopherson
2024-11-21 3:26 ` Mi, Dapeng
2024-08-01 4:59 ` [RFC PATCH v3 54/58] KVM: x86/pmu/svm: Add registers to direct access list Mingwei Zhang
2024-08-01 4:59 ` [RFC PATCH v3 55/58] KVM: x86/pmu/svm: Implement handlers to save and restore context Mingwei Zhang
2024-08-01 4:59 ` [RFC PATCH v3 56/58] KVM: x86/pmu/svm: Wire up PMU filtering functionality for passthrough PMU Mingwei Zhang
2024-11-20 21:39 ` Sean Christopherson
2024-11-21 3:29 ` Mi, Dapeng
2024-08-01 4:59 ` [RFC PATCH v3 57/58] KVM: x86/pmu/svm: Implement callback to increment counters Mingwei Zhang
2024-08-01 4:59 ` [RFC PATCH v3 58/58] perf/x86/amd: Support PERF_PMU_CAP_PASSTHROUGH_VPMU for AMD host Mingwei Zhang
2024-09-11 10:45 ` [RFC PATCH v3 00/58] Mediated Passthrough vPMU 3.0 for x86 Ma, Yongwei
2024-11-19 14:00 ` Sean Christopherson
2024-11-20 2:31 ` Mi, Dapeng
2024-11-20 11:55 ` Mi, Dapeng
2024-11-20 18:34 ` Sean Christopherson
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=Zt9z8J4wD2VXe2sE@google.com \
--to=namhyung@kernel.org \
--cc=dapeng1.mi@linux.intel.com \
--cc=eranian@google.com \
--cc=gce-passthrou-pmu-dev@google.com \
--cc=irogers@google.com \
--cc=jmattson@google.com \
--cc=kan.liang@intel.com \
--cc=kan.liang@linux.intel.com \
--cc=kvm@vger.kernel.org \
--cc=like.xu.linux@gmail.com \
--cc=linux-perf-users@vger.kernel.org \
--cc=manali.shukla@amd.com \
--cc=mizhang@google.com \
--cc=pbonzini@redhat.com \
--cc=peterz@infradead.org \
--cc=rananta@google.com \
--cc=samantha.alt@intel.com \
--cc=sandipan.das@amd.com \
--cc=seanjc@google.com \
--cc=xiong.y.zhang@intel.com \
--cc=yanfei.xu@intel.com \
--cc=zhenyuw@linux.intel.com \
--cc=zhiyuan.lv@intel.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.