From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christoffer Dall Subject: Re: [RFC PATCH 0/6] ARM64: KVM: PMU infrastructure support Date: Fri, 7 Nov 2014 21:25:02 +0100 Message-ID: <20141107202502.GJ22848@cbox> References: <1407230655-28864-1-git-send-email-anup.patel@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: kvmarm@lists.cs.columbia.edu, linux-arm-kernel@lists.infradead.org, kvm@vger.kernel.org, patches@apm.com, marc.zyngier@arm.com, will.deacon@arm.com, ian.campbell@citrix.com, pranavkumar@linaro.org To: Anup Patel Return-path: Received: from mail-la0-f44.google.com ([209.85.215.44]:58058 "EHLO mail-la0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751858AbaKGUY4 (ORCPT ); Fri, 7 Nov 2014 15:24:56 -0500 Received: by mail-la0-f44.google.com with SMTP id gf13so5127955lab.3 for ; Fri, 07 Nov 2014 12:24:54 -0800 (PST) Content-Disposition: inline In-Reply-To: <1407230655-28864-1-git-send-email-anup.patel@linaro.org> Sender: kvm-owner@vger.kernel.org List-ID: Hi Anup, [This time to the new email] What are your plans in terms of follow-up on this one? Should we review these patches and reply to anup _at_ brainfaul.org or are you looking for someone else to pick them up? Thanks, -Christoffer On Tue, Aug 05, 2014 at 02:54:09PM +0530, Anup Patel wrote: > This patchset enables PMU virtualization in KVM ARM64. The > Guest can now directly use PMU available on the host HW. > > The virtual PMU IRQ injection for Guest VCPUs is managed by > small piece of code shared between KVM ARM and KVM ARM64. The > virtual PMU IRQ number will be based on Guest machine model and > user space will provide it using set device address vm ioctl. > > The second last patch of this series implements full context > switch of PMU registers which will context switch all PMU > registers on every KVM world-switch. > > The last patch implements a lazy context switch of PMU registers > which is very similar to lazy debug context switch. > (Refer, http://lists.infradead.org/pipermail/linux-arm-kernel/2014-July/271040.html) > > Also, we reserve last PMU event counter for EL2 mode which > will not be accessible from Host and Guest EL1 mode. This > reserved EL2 mode PMU event counter can be used for profiling > KVM world-switch and other EL2 mode functions. > > All testing have been done using KVMTOOL on X-Gene Mustang and > Foundation v8 Model for both Aarch32 and Aarch64 guest. > > Anup Patel (6): > ARM64: Move PMU register related defines to asm/pmu.h > ARM64: perf: Re-enable overflow interrupt from interrupt handler > ARM: perf: Re-enable overflow interrupt from interrupt handler > ARM/ARM64: KVM: Add common code PMU IRQ routing > ARM64: KVM: Implement full context switch of PMU registers > ARM64: KVM: Upgrade to lazy context switch of PMU registers > > arch/arm/include/asm/kvm_host.h | 9 + > arch/arm/include/uapi/asm/kvm.h | 1 + > arch/arm/kernel/perf_event_v7.c | 8 + > arch/arm/kvm/arm.c | 6 + > arch/arm/kvm/reset.c | 4 + > arch/arm64/include/asm/kvm_asm.h | 39 +++- > arch/arm64/include/asm/kvm_host.h | 12 ++ > arch/arm64/include/asm/pmu.h | 44 +++++ > arch/arm64/include/uapi/asm/kvm.h | 1 + > arch/arm64/kernel/asm-offsets.c | 2 + > arch/arm64/kernel/perf_event.c | 40 +--- > arch/arm64/kvm/Kconfig | 7 + > arch/arm64/kvm/Makefile | 1 + > arch/arm64/kvm/hyp-init.S | 15 ++ > arch/arm64/kvm/hyp.S | 209 +++++++++++++++++++- > arch/arm64/kvm/reset.c | 4 + > arch/arm64/kvm/sys_regs.c | 385 +++++++++++++++++++++++++++++++++---- > include/kvm/arm_pmu.h | 52 +++++ > virt/kvm/arm/pmu.c | 105 ++++++++++ > 19 files changed, 870 insertions(+), 74 deletions(-) > create mode 100644 include/kvm/arm_pmu.h > create mode 100644 virt/kvm/arm/pmu.c > > -- > 1.7.9.5 > From mboxrd@z Thu Jan 1 00:00:00 1970 From: christoffer.dall@linaro.org (Christoffer Dall) Date: Fri, 7 Nov 2014 21:25:02 +0100 Subject: [RFC PATCH 0/6] ARM64: KVM: PMU infrastructure support In-Reply-To: <1407230655-28864-1-git-send-email-anup.patel@linaro.org> References: <1407230655-28864-1-git-send-email-anup.patel@linaro.org> Message-ID: <20141107202502.GJ22848@cbox> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi Anup, [This time to the new email] What are your plans in terms of follow-up on this one? Should we review these patches and reply to anup _at_ brainfaul.org or are you looking for someone else to pick them up? Thanks, -Christoffer On Tue, Aug 05, 2014 at 02:54:09PM +0530, Anup Patel wrote: > This patchset enables PMU virtualization in KVM ARM64. The > Guest can now directly use PMU available on the host HW. > > The virtual PMU IRQ injection for Guest VCPUs is managed by > small piece of code shared between KVM ARM and KVM ARM64. The > virtual PMU IRQ number will be based on Guest machine model and > user space will provide it using set device address vm ioctl. > > The second last patch of this series implements full context > switch of PMU registers which will context switch all PMU > registers on every KVM world-switch. > > The last patch implements a lazy context switch of PMU registers > which is very similar to lazy debug context switch. > (Refer, http://lists.infradead.org/pipermail/linux-arm-kernel/2014-July/271040.html) > > Also, we reserve last PMU event counter for EL2 mode which > will not be accessible from Host and Guest EL1 mode. This > reserved EL2 mode PMU event counter can be used for profiling > KVM world-switch and other EL2 mode functions. > > All testing have been done using KVMTOOL on X-Gene Mustang and > Foundation v8 Model for both Aarch32 and Aarch64 guest. > > Anup Patel (6): > ARM64: Move PMU register related defines to asm/pmu.h > ARM64: perf: Re-enable overflow interrupt from interrupt handler > ARM: perf: Re-enable overflow interrupt from interrupt handler > ARM/ARM64: KVM: Add common code PMU IRQ routing > ARM64: KVM: Implement full context switch of PMU registers > ARM64: KVM: Upgrade to lazy context switch of PMU registers > > arch/arm/include/asm/kvm_host.h | 9 + > arch/arm/include/uapi/asm/kvm.h | 1 + > arch/arm/kernel/perf_event_v7.c | 8 + > arch/arm/kvm/arm.c | 6 + > arch/arm/kvm/reset.c | 4 + > arch/arm64/include/asm/kvm_asm.h | 39 +++- > arch/arm64/include/asm/kvm_host.h | 12 ++ > arch/arm64/include/asm/pmu.h | 44 +++++ > arch/arm64/include/uapi/asm/kvm.h | 1 + > arch/arm64/kernel/asm-offsets.c | 2 + > arch/arm64/kernel/perf_event.c | 40 +--- > arch/arm64/kvm/Kconfig | 7 + > arch/arm64/kvm/Makefile | 1 + > arch/arm64/kvm/hyp-init.S | 15 ++ > arch/arm64/kvm/hyp.S | 209 +++++++++++++++++++- > arch/arm64/kvm/reset.c | 4 + > arch/arm64/kvm/sys_regs.c | 385 +++++++++++++++++++++++++++++++++---- > include/kvm/arm_pmu.h | 52 +++++ > virt/kvm/arm/pmu.c | 105 ++++++++++ > 19 files changed, 870 insertions(+), 74 deletions(-) > create mode 100644 include/kvm/arm_pmu.h > create mode 100644 virt/kvm/arm/pmu.c > > -- > 1.7.9.5 >