From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Huang Subject: Re: [PATCH V1 0/4] KVM vPMU support for x86 Date: Mon, 03 Nov 2014 12:23:59 -0600 Message-ID: <5457C83F.3050106@redhat.com> References: <1414771534-29411-1-git-send-email-wei@redhat.com> <20141103175630.GA2009@potion.brq.redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: QUOTED-PRINTABLE Cc: kvm@vger.kernel.org, pbonzini@redhat.com, gleb@kernel.org To: =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= Return-path: Received: from mx1.redhat.com ([209.132.183.28]:35331 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753465AbaKCSYC (ORCPT ); Mon, 3 Nov 2014 13:24:02 -0500 In-Reply-To: <20141103175630.GA2009@potion.brq.redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On 11/03/2014 11:56 AM, Radim Kr=C4=8Dm=C3=A1=C5=99 wrote: > 2014-10-31 12:05-0400, Wei Huang: >> Currently KVM only supports vPMU for Intel platforms. This patch set= =20 >> 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. >=20 > 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 a= s guest VMs access raw counters (see PERF_TYPE_RAW), we can't emulate the= m anymore. >=20 >> V1: >> * Adopt the file layout suggested by Radim Kr=C4=8Dm=C3=A1=C5=99 >=20 > (I'll still advocate for more separation, sorry.) >=20 >> * 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 dispatc= h >> 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 M= SRs >> >> 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 >> >> --=20 >> 1.8.3.1 >>