• Ingo Molnar's avatar
    perf_counter: Implement generalized cache event types · 8326f44d
    Ingo Molnar authored
    Extend generic event enumeration with the PERF_TYPE_HW_CACHE
    method.
    
    This is a 3-dimensional space:
    
           { L1-D, L1-I, L2, ITLB, DTLB, BPU } x
           { load, store, prefetch } x
           { accesses, misses }
    
    User-space passes in the 3 coordinates and the kernel provides
    a counter. (if the hardware supports that type and if the
    combination makes sense.)
    
    Combinations that make no sense produce a -EINVAL.
    Combinations that are not supported by the hardware produce -ENOTSUP.
    
    Extend the tools to deal with this, and rewrite the event symbol
    parsing code with various popular aliases for the units and
    access methods above. So 'l1-cache-miss' and 'l1d-read-ops' are
    both valid aliases.
    
    ( x86 is supported for now, with the Nehalem event table filled in,
      and with Core2 and Atom having placeholder tables. )
    
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Mike Galbraith <efault@gmx.de>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
    Cc: Marcelo Tosatti <mtosatti@redhat.com>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    LKML-Reference: <new-submission>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    8326f44d
perf_counter.c 97.8 KB