From: Wei Huang <wei@redhat.com>
To: "Radim Krčmář" <rkrcmar@redhat.com>
Cc: kvm@vger.kernel.org, pbonzini@redhat.com, gleb@kernel.org
Subject: Re: [PATCH V1 0/4] KVM vPMU support for x86
Date: Mon, 03 Nov 2014 12:23:59 -0600 [thread overview]
Message-ID: <5457C83F.3050106@redhat.com> (raw)
In-Reply-To: <20141103175630.GA2009@potion.brq.redhat.com>
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
>>
next prev parent reply other threads:[~2014-11-03 18:24 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-31 16:05 [PATCH V1 0/4] KVM vPMU support for x86 Wei Huang
2014-10-31 16:05 ` [PATCH V1 1/4] KVM: x86/vPMU: Define kvm_pmu_ops to support vPMU function dispatch Wei Huang
2014-10-31 16:05 ` [PATCH V1 2/4] KVM: x86/vPMU: Convert pmu.c code into Intel specific code Wei Huang
2014-11-03 18:36 ` Radim Krčmář
2014-11-04 18:38 ` Wei Huang
2014-10-31 16:05 ` [PATCH V1 3/4] KVM: x86/vPMU: Implement AMD PMU support for KVM Wei Huang
2014-11-03 18:17 ` Radim Krčmář
2014-11-04 18:20 ` Wei Huang
2014-10-31 16:05 ` [PATCH V1 4/4] KVM: x86/vPMU: Enable PMU handling for AMD PERFCTRn and EVNTSELn MSRs Wei Huang
2014-11-03 17:56 ` [PATCH V1 0/4] KVM vPMU support for x86 Radim Krčmář
2014-11-03 18:23 ` Wei Huang [this message]
2014-11-03 18:39 ` Radim Krčmář
2014-11-03 18:47 ` Wei Huang
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=5457C83F.3050106@redhat.com \
--to=wei@redhat.com \
--cc=gleb@kernel.org \
--cc=kvm@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=rkrcmar@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox