[kvmarm] [PATCH 05/15] ARM: Expose PMNC bitfields for KVM use

Will Deacon will.deacon at arm.com
Wed Sep 19 05:30:08 EDT 2012


On Wed, Sep 19, 2012 at 05:09:34AM +0100, Rusty Russell wrote:
> Will Deacon <will.deacon at arm.com> writes:
> > On Sat, Sep 15, 2012 at 04:35:02PM +0100, Christoffer Dall wrote:
> >> From: Rusty Russell <rusty.russell at linaro.org>
> >> 
> >> We want some of these for use in KVM, so pull them out of
> >> arch/arm/kernel/perf_event_v7.c into their own asm/perf_bits.h.
> >> 
> >> Signed-off-by: Rusty Russell <rusty.russell at linaro.org>
> >> Signed-off-by: Christoffer Dall <c.dall at virtualopensystems.com>
> >> ---
> >>  arch/arm/include/asm/perf_bits.h |   56 ++++++++++++++++++++++++++++++++++++++
> >>  arch/arm/kernel/perf_event_v7.c  |   51 +----------------------------------
> >>  2 files changed, 57 insertions(+), 50 deletions(-)
> >>  create mode 100644 arch/arm/include/asm/perf_bits.h
> >
> > I don't like this I'm afraid. These bit definitions, although useful for
> > kvm, are only applicable to ARMv7 PMUs. Perf does a reasonable job of
> > separating the low-level CPU-specific code and adding the v7 definitions
> > into their own global header feels like a step backwards. I also want to
> > move a load of this into drivers/ at some point and this won't help with
> > that effort.
> >
> > Is KVM just using this for world switch? If so, why does it care about the
> > bit definitions (and what do you do for things like debug regs)? Is there
> > anything I could add to perf that you could call instead?
> 
> No, we need these definitions if we ever want to actually implement
> PMU for the guest.[1]
> 
> But we don't do this yet, so you can defer this patch until then if you
> want.

Ok, let's postpone the pain for the moment.

> [1] Which we should do, since you NAKed the patch which would allow the
>     guest to detect that we don't have a PMU, insisting that "all A15s have
>     a PMU", despite the fact that we don't.  I assume this means you're
>     busy implementing it right now :)

Yeah, right! Happy to add hooks to perf if you need them though, rather than
expose the raw bit definitions.

Will



More information about the linux-arm-kernel mailing list