• Paul Mackerras's avatar
    perf_counter: powerpc: supply more precise information on counter overflow events · 0bbd0d4b
    Paul Mackerras authored
    This uses values from the MMCRA, SIAR and SDAR registers on
    powerpc to supply more precise information for overflow events,
    including a data address when PERF_RECORD_ADDR is specified.
    
    Since POWER6 uses different bit positions in MMCRA from earlier
    processors, this converts the struct power_pmu limited_pmc5_6
    field, which only had 0/1 values, into a flags field and
    defines bit values for its previous use (PPMU_LIMITED_PMC5_6)
    and a new flag (PPMU_ALT_SIPR) to indicate that the processor
    uses the POWER6 bit positions rather than the earlier
    positions.  It also adds definitions in reg.h for the new and
    old positions of the bit that indicates that the SIAR and SDAR
    values come from the same instruction.
    
    For the data address, the SDAR value is supplied if we are not
    doing instruction sampling.  In that case there is no guarantee
    that the address given in the PERF_RECORD_ADDR subrecord will
    correspond to the instruction whose address is given in the
    PERF_RECORD_IP subrecord.
    
    If instruction sampling is enabled (e.g. because this counter
    is counting a marked instruction event), then we only supply
    the SDAR value for the PERF_RECORD_ADDR subrecord if it
    corresponds to the instruction whose address is in the
    PERF_RECORD_IP subrecord.  Otherwise we supply 0.
    
    [ Impact: support more PMU hardware features on PowerPC ]
    Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
    Acked-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    LKML-Reference: <18955.37028.48861.555309@drongo.ozlabs.ibm.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    0bbd0d4b
power6-pmu.c 13.5 KB