Re: [PATCH V1 0/4] KVM vPMU support for x86

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 11/03/2014 11:56 AM, Radim Krčmář wrote:
> 2014-10-31 12:05-0400, Wei Huang:
>> Currently KVM only supports vPMU for Intel platforms. This patch set 
>> enable vPMU support for AMD platform by creating a common PMU
>> interface for x86. The PMU calls from guest VMs are dispatched
>> to corresponding functions defined in arch specific files.
> 
> The functionality looks good, so I just want verify the basic design:
> why don't we emulate AMD PMU on Intel, and vice versa?
> (Underlying PERF_COUNTs are identical in both.)

Thanks. The underlining perf counters can be very different between AMD
and Intel. I think we can emulate AMD on Intel, or vice versa, for some
common perfmon_events (such as PERF_COUNT_HW_CPU_CYCLES). But as soon as
guest VMs access raw counters (see PERF_TYPE_RAW), we can't emulate them
anymore.

> 
>> V1:
>>   * Adopt the file layout suggested by Radim Krčmář
> 
> (I'll still advocate for more separation, sorry.)
> 
>>   * Link arch module with its specific PMU file
>>
>> RFC:
>>   * Initial version for RFC
>>
>> Wei Huang (4):
>>   KVM: x86/vPMU: Define kvm_pmu_ops to support vPMU function dispatch
>>   KVM: x86/vPMU: Convert pmu.c code into Intel specific code
>>   KVM: x86/vPMU: Implement AMD PMU support for KVM
>>   KVM: x86/vPMU: Enable PMU handling for AMD PERFCTRn and EVNTSELn MSRs
>>
>>  arch/x86/include/asm/kvm_host.h |  52 ++--
>>  arch/x86/kvm/Makefile           |   6 +-
>>  arch/x86/kvm/cpuid.c            |   2 +-
>>  arch/x86/kvm/lapic.c            |   1 +
>>  arch/x86/kvm/pmu.c              | 576 ---------------------------------------
>>  arch/x86/kvm/pmu_amd.c          | 390 ++++++++++++++++++++++++++
>>  arch/x86/kvm/pmu_intel.c        | 586 ++++++++++++++++++++++++++++++++++++++++
>>  arch/x86/kvm/svm.c              |   7 +
>>  arch/x86/kvm/vmx.c              |   7 +
>>  arch/x86/kvm/x86.c              |  74 ++---
>>  10 files changed, 1070 insertions(+), 631 deletions(-)
>>  delete mode 100644 arch/x86/kvm/pmu.c
>>  create mode 100644 arch/x86/kvm/pmu_amd.c
>>  create mode 100644 arch/x86/kvm/pmu_intel.c
>>
>> -- 
>> 1.8.3.1
>>
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux