• C
    x86, perf: Add raw events support for the P4 PMU · d814f301
    Cyrill Gorcunov 提交于
    The adding of raw event support lead to complete code
    refactoring. I hope is became more readable then it was.
    
    The list of changes:
    
    1)  The 64bit config field is enough to hold all information we need
        to track event details. To achieve it we used *own* enum for
        events selection in ESCR register and map this key into proper
        value at moment of event enabling.
    
        For the same reason we use 12LSB bits in CCCR register -- to track
        which exactly cache trace event was requested. And we cear this bits
        at real 'write' moment.
    
    2)  There is no per-cpu area reserved for P4 PMU anymore. We
        don't need it. All is held by config.
    
    3)  Now we may use any available counter, ie we try to grab any
        possible counter.
    
    v2:
      - Lin Ming reported the lack of ESCR selector in CCCR for cache events
    
    v3:
      - Don't loose cache event codes at config unpacking procedure, we may
        need it one day so no obscure hack behind our back, better to clear
        reserved bits explicitly when needed (thanks Ming for pointing out)
    
      - Lin Ming fixed misplaced opcodes in cache events
    Signed-off-by: NCyrill Gorcunov <gorcunov@openvz.org>
    Tested-by: NLin Ming <ming.m.lin@intel.com>
    Signed-off-by: NLin Ming <ming.m.lin@intel.com>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Robert Richter <robert.richter@amd.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Cyrill Gorcunov <gorcunov@gmail.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    LKML-Reference: <1269403766.3409.6.camel@minggr.sh.intel.com>
    [ v4: did a few whitespace fixlets ]
    Signed-off-by: NIngo Molnar <mingo@elte.hu>
    d814f301
perf_event_p4.h 23.3 KB