Perf Event support for ARMv7 (was: Re: [PATCH 5/5] arm/perfevents: implement perf event support for ARMv6)

Jean Pihet jpihet at mvista.com
Mon Dec 21 06:32:32 EST 2009


On Saturday 19 December 2009 11:53:43 Ingo Molnar wrote:
> * Jamie Iles <jamie at jamieiles.com> wrote:
> > [snip]
> >
> > > I had a question about the events mapping to user space. Although most
> > > of the events are mapped in the kernel code, some of the exotic events
> > > are not mapped (e.g. NEON or PMU related events). How to use those
> > > events from user space? Is it done using the raw mappings?
> >
> > Yes, the raw events should do the trick. 'perf stat -a -e rff -- sleep 1'
> > will do cycle counting on v6 using the raw event number.
>
> Sidenote: if some of the more exotic events turn out to be useful and are
> worth generalizing, then we can add them to the generic enumeration and add
> tooling support (symbols, aliases, listing, etc.) for it.
>
> The current set of generic events are intended to be a 'seed' set, to be
> extended on an as-needed basis - not cast into stone in any way.
>
> The current generic (hardware) events are (from 'perf list' output):
>
>   cpu-cycles OR cycles                       [Hardware event]
>   instructions                               [Hardware event]
>   cache-references                           [Hardware event]
>   cache-misses                               [Hardware event]
>   branch-instructions OR branches            [Hardware event]
>   branch-misses                              [Hardware event]
>   bus-cycles                                 [Hardware event]
>   L1-dcache-loads                            [Hardware cache event]
>   L1-dcache-load-misses                      [Hardware cache event]
>   L1-dcache-stores                           [Hardware cache event]
>   L1-dcache-store-misses                     [Hardware cache event]
>   L1-dcache-prefetches                       [Hardware cache event]
>   L1-dcache-prefetch-misses                  [Hardware cache event]
>   L1-icache-loads                            [Hardware cache event]
>   L1-icache-load-misses                      [Hardware cache event]
>   L1-icache-prefetches                       [Hardware cache event]
>   L1-icache-prefetch-misses                  [Hardware cache event]
>   LLC-loads                                  [Hardware cache event]
>   LLC-load-misses                            [Hardware cache event]
>   LLC-stores                                 [Hardware cache event]
>   LLC-store-misses                           [Hardware cache event]
>   LLC-prefetches                             [Hardware cache event]
>   LLC-prefetch-misses                        [Hardware cache event]
>   dTLB-loads                                 [Hardware cache event]
>   dTLB-load-misses                           [Hardware cache event]
>   dTLB-stores                                [Hardware cache event]
>   dTLB-store-misses                          [Hardware cache event]
>   dTLB-prefetches                            [Hardware cache event]
>   dTLB-prefetch-misses                       [Hardware cache event]
>   iTLB-loads                                 [Hardware cache event]
>   iTLB-load-misses                           [Hardware cache event]
>   branch-loads                               [Hardware cache event]
>   branch-load-misses                         [Hardware cache event]
>   rNNN                                       [raw hardware event
> descriptor] mem:<addr>[:access]                        [hardware
> breakpoint]
>
> But i think we might want to capture FPU-alike instructions as well on CPUs
> that can count/sample them - etc.
>
Ok, thanks for the information!
We might need to generalize the ARMv7 CPUs for the moment the processors are 
Cortex-A8 (supported by the proposed patch) and Cortex-A9 (not yet supported 
but should come soon).


> 	Ingo

Jean



More information about the linux-arm-kernel mailing list