From: Sean Christopherson <seanjc@google.com>
To: Mingwei Zhang <mizhang@google.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
Xiong Zhang <xiong.y.zhang@intel.com>,
Dapeng Mi <dapeng1.mi@linux.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>,
Namhyung Kim <namhyung@kernel.org>,
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 26/58] KVM: x86/pmu: Manage MSR interception for IA32_PERF_GLOBAL_CTRL
Date: Tue, 19 Nov 2024 10:16:38 -0800 [thread overview]
Message-ID: <ZzzWBoCg-2B5p9bN@google.com> (raw)
In-Reply-To: <20240801045907.4010984-27-mizhang@google.com>
On Thu, Aug 01, 2024, Mingwei Zhang wrote:
> ---
> arch/x86/include/asm/vmx.h | 1 +
> arch/x86/kvm/vmx/vmx.c | 117 +++++++++++++++++++++++++++++++------
> arch/x86/kvm/vmx/vmx.h | 3 +-
> 3 files changed, 103 insertions(+), 18 deletions(-)
>
> diff --git a/arch/x86/include/asm/vmx.h b/arch/x86/include/asm/vmx.h
> index d77a31039f24..5ed89a099533 100644
> --- a/arch/x86/include/asm/vmx.h
> +++ b/arch/x86/include/asm/vmx.h
> @@ -106,6 +106,7 @@
> #define VM_EXIT_CLEAR_BNDCFGS 0x00800000
> #define VM_EXIT_PT_CONCEAL_PIP 0x01000000
> #define VM_EXIT_CLEAR_IA32_RTIT_CTL 0x02000000
> +#define VM_EXIT_SAVE_IA32_PERF_GLOBAL_CTRL 0x40000000
Please add a helper in capabilities.h:
static inline bool cpu_has_save_perf_global_ctrl(void)
{
return vmcs_config.vmexit_ctrl & VM_EXIT_SAVE_IA32_PERF_GLOBAL_CTRL;
}
> #define VM_EXIT_ALWAYSON_WITHOUT_TRUE_MSR 0x00036dff
>
> diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
> index 339742350b7a..34a420fa98c5 100644
> --- a/arch/x86/kvm/vmx/vmx.c
> +++ b/arch/x86/kvm/vmx/vmx.c
> @@ -4394,6 +4394,97 @@ static u32 vmx_pin_based_exec_ctrl(struct vcpu_vmx *vmx)
> return pin_based_exec_ctrl;
> }
>
> +static void vmx_set_perf_global_ctrl(struct vcpu_vmx *vmx)
This is a misleading and inaccurate name. It does far more than "set" PERF_GLOBAL_CTRL,
it arguably doesn't ever "set" the MSR, and it gets the VMWRITE for the guest field
wrong too.
> +{
> + u32 vmentry_ctrl = vm_entry_controls_get(vmx);
> + u32 vmexit_ctrl = vm_exit_controls_get(vmx);
> + struct vmx_msrs *m;
> + int i;
> +
> + if (cpu_has_perf_global_ctrl_bug() ||
Note, cpu_has_perf_global_ctrl_bug() broken and needs to be purged:
https://lore.kernel.org/all/20241119011433.1797921-1-seanjc@google.com
Note #2, as mentioned earlier, the mediated PMU should take a hard depenency on
the load/save controls.
On to this code, it fails to enable the load/save controls, e.g. if userspace
does KVM_SET_CPUID2 without a PMU, then KVM_SET_CPUID2 with a PMU. In that case,
KVM will fail to set the control bits, and will fallback to the slow MSR load/save
lists.
With all of the above and other ideas combined, something like so:
bool set = enable_mediated_pmu && kvm_pmu_has_perf_global_ctrl();
vm_entry_controls_changebit(vmx, VM_ENTRY_LOAD_IA32_PERF_GLOBAL_CTRL, set);
vm_exit_controls_changebit(vmx,
VM_EXIT_LOAD_IA32_PERF_GLOBAL_CTRL |
VM_EXIT_SAVE_IA32_PERF_GLOBAL_CTRL, set);
And I vote to put this in intel_pmu_refresh(); that avoids needing to figure out
a name for the helper, while giving more flexibililty on the local variable name.
Oh! Definitely put it in intel_pmu_refresh(), because the RDPMC and MSR
interception logic needs to be there. E.g. toggling CPU_BASED_RDPMC_EXITING
based solely on CPUID won't do the right thing if KVM ends up making the behavior
depend on PERF_CAPABILITIES.
Ditto for MSRs. Though until my patch/series that drops kvm_pmu_refresh() from
kvm_pmu_init() lands[*], trying to update MSR intercepts during refresh() will hit
a NULL pointer deref as it's currently called before vmcs01 is allocated :-/
I expect to land that series before mediated PMU, but I don't think it makes sense
to take an explicit dependency for this series. To fudge around the issue, maybe
do this for the next version?
static void intel_pmu_refresh(struct kvm_vcpu *vcpu)
{
__intel_pmu_refresh(vcpu);
/*
* FIXME: Drop the MSR bitmap check if/when kvm_pmu_init() no longer
* calls kvm_pmu_refresh(), i.e. when KVM refreshes the PMU only
* after vmcs01 is allocated.
*/
if (to_vmx(vcpu)->vmcs01.msr_bitmap)
intel_update_msr_intercepts(vcpu);
vm_entry_controls_changebit(vmx, VM_ENTRY_LOAD_IA32_PERF_GLOBAL_CTRL,
enable_mediated_pmu && kvm_pmu_has_perf_global_ctrl());
vm_exit_controls_changebit(vmx,
VM_EXIT_LOAD_IA32_PERF_GLOBAL_CTRL |
VM_EXIT_SAVE_IA32_PERF_GLOBAL_CTRL,
enable_mediated_pmu && kvm_pmu_has_perf_global_ctrl());
}
or with a local variable for "enable_mediated_pmu && kvm_pmu_has_perf_global_ctrl()".
I can't come up with a decent name. :-)
[*] https://lore.kernel.org/all/20240517173926.965351-10-seanjc@google.com
> + !is_passthrough_pmu_enabled(&vmx->vcpu)) {
> + vmentry_ctrl &= ~VM_ENTRY_LOAD_IA32_PERF_GLOBAL_CTRL;
> + vmexit_ctrl &= ~VM_EXIT_LOAD_IA32_PERF_GLOBAL_CTRL;
> + vmexit_ctrl &= ~VM_EXIT_SAVE_IA32_PERF_GLOBAL_CTRL;
> + }
> +
> + if (is_passthrough_pmu_enabled(&vmx->vcpu)) {
> + /*
> + * Setup auto restore guest PERF_GLOBAL_CTRL MSR at vm entry.
> + */
> + if (vmentry_ctrl & VM_ENTRY_LOAD_IA32_PERF_GLOBAL_CTRL) {
> + vmcs_write64(GUEST_IA32_PERF_GLOBAL_CTRL, 0);
This incorrectly clobbers the guest's value. A simple way to handle this is to
always propagate writes to PERF_GLOBAL_CTRL to the VMCS, if the write is allowed
and enable_mediated_pmu. I.e. ensure GUEST_IA32_PERF_GLOBAL_CTRL is up-to-date
regardless of whether or not it's configured to be loaded. Then there's no need
to write it here.
> + } else {
> + m = &vmx->msr_autoload.guest;
> + i = vmx_find_loadstore_msr_slot(m, MSR_CORE_PERF_GLOBAL_CTRL);
> + if (i < 0) {
> + i = m->nr++;
> + vmcs_write32(VM_ENTRY_MSR_LOAD_COUNT, m->nr);
> + }
> + m->val[i].index = MSR_CORE_PERF_GLOBAL_CTRL;
> + m->val[i].value = 0;
> + }
> + /*
> + * Setup auto clear host PERF_GLOBAL_CTRL msr at vm exit.
> + */
> + if (vmexit_ctrl & VM_EXIT_LOAD_IA32_PERF_GLOBAL_CTRL) {
> + vmcs_write64(HOST_IA32_PERF_GLOBAL_CTRL, 0);
This should be unnecessary. KVM should clear HOST_IA32_PERF_GLOBAL_CTRL in
vmx_set_constant_host_state() if enable_mediated_pmu is true. Arguably, it might
make sense to clear it unconditionally, but with a comment explaining that it's
only actually constant for the mediated PMU.
And if the mediated PMU requires the VMCS knobs, then all of the load/store list
complexity goes away.
> static u32 vmx_vmentry_ctrl(void)
> {
> u32 vmentry_ctrl = vmcs_config.vmentry_ctrl;
> @@ -4401,17 +4492,10 @@ static u32 vmx_vmentry_ctrl(void)
> if (vmx_pt_mode_is_system())
> vmentry_ctrl &= ~(VM_ENTRY_PT_CONCEAL_PIP |
> VM_ENTRY_LOAD_IA32_RTIT_CTL);
> - /*
> - * IA32e mode, and loading of EFER and PERF_GLOBAL_CTRL are toggled dynamically.
> - */
> - vmentry_ctrl &= ~(VM_ENTRY_LOAD_IA32_PERF_GLOBAL_CTRL |
> - VM_ENTRY_LOAD_IA32_EFER |
> - VM_ENTRY_IA32E_MODE);
> -
> - if (cpu_has_perf_global_ctrl_bug())
> - vmentry_ctrl &= ~VM_ENTRY_LOAD_IA32_PERF_GLOBAL_CTRL;
> -
> - return vmentry_ctrl;
> + /*
> + * IA32e mode, and loading of EFER is toggled dynamically.
> + */
> + return vmentry_ctrl &= ~(VM_ENTRY_LOAD_IA32_EFER | VM_ENTRY_IA32E_MODE);
With my above suggestion, these changes are unnecessary. If enable_mediated_pmu
is false, or the vCPU doesn't have a PMU, clearing the controls is correct. And
when the vCPU is gifted a PMU, KVM will explicitly enabled the controls.
To discourage incorrect usage of these helpers maybe rename them to
vmx_get_initial_{vmentry,vmexit}_ctrl()?
> }
>
> static u32 vmx_vmexit_ctrl(void)
> @@ -4429,12 +4513,8 @@ static u32 vmx_vmexit_ctrl(void)
> vmexit_ctrl &= ~(VM_EXIT_PT_CONCEAL_PIP |
> VM_EXIT_CLEAR_IA32_RTIT_CTL);
>
> - if (cpu_has_perf_global_ctrl_bug())
> - vmexit_ctrl &= ~VM_EXIT_LOAD_IA32_PERF_GLOBAL_CTRL;
> -
> - /* Loading of EFER and PERF_GLOBAL_CTRL are toggled dynamically */
> - return vmexit_ctrl &
> - ~(VM_EXIT_LOAD_IA32_PERF_GLOBAL_CTRL | VM_EXIT_LOAD_IA32_EFER);
But this code needs to *add* clearing of VM_EXIT_SAVE_IA32_PERF_GLOBAL_CTRL.
next prev parent reply other threads:[~2024-11-19 18:16 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
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 [this message]
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=ZzzWBoCg-2B5p9bN@google.com \
--to=seanjc@google.com \
--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=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=namhyung@kernel.org \
--cc=pbonzini@redhat.com \
--cc=peterz@infradead.org \
--cc=rananta@google.com \
--cc=samantha.alt@intel.com \
--cc=sandipan.das@amd.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.