[RFC PATCH 0/6] ARM64: KVM: PMU infrastructure support
Anup Patel
anup at brainfault.org
Sat Nov 8 01:36:51 PST 2014
Hi Christoffer,
On Sat, Nov 8, 2014 at 1:55 AM, Christoffer Dall
<christoffer.dall at linaro.org> wrote:
> Hi Anup,
>
> [This time to the new email]
>
> What are your plans in terms of follow-up on this one?
Actually, I am already working on RFC v2. I will send-out
RFC v2 sometime next time.
This RFC v2 will be RFC v1 based upon Marc's IRQ
forwarding patchset.
I will try to address PMU context switching for KVM ARM
in RFC v3. Does this sound OK?
Regards,
Anup
>
> 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
>>
More information about the linux-arm-kernel
mailing list