Skip to content
  • Thomas Richter's avatar
    perf report: Add raw report support for s390 auxiliary trace · 2b1444f2
    Thomas Richter authored
    
    
    Add support for s390 auxiliary trace support.
    
    Use 'perf record -e rbd000' to create the perf.data file.  The event
    also has the symbolic name SF_CYCLES_BASIC_DIAG, using 'perf record -e
    SF_CYCLES_BASIC_DIAG' is equivalent.
    
    Use 'perf report -D' to display the auxiliary trace data.
    
    Output before:
    
     0 0 0x25a66 [0x30]: PERF_RECORD_AUXTRACE size: 0x40000
                     offset: 0  ref: 0  idx: 4  tid: -1  cpu: 4
         Nothing else
    
    Output after:
    
     0 0 0x25a66 [0x30]: PERF_RECORD_AUXTRACE size: 0x40000
                      offset: 0  ref: 0  idx: 4  tid: -1  cpu: 4
     .
     . ... s390 AUX data: size 262144 bytes
        [00000000] Basic   Def:0001 Inst:0000 TW   AS:3 ASN:0xffff IA:0x0000000000c2f1bc
    		CL:1 HPP:0x8000000000000000 GPP:000000000000000000
        [0x000020] Diag    Def:8005
        [0x0000bf] Basic   Def:0001 Inst:0000 TW   AS:3 ASN:0xffff IA:0x0000000000c2f1bc
    		CL:1 HPP:0x8000000000000000 GPP:000000000000000000
        [0x0000df] Diag    Def:8005
        [0x00017e] Basic   Def:0001 Inst:0000 TW   AS:3 ASN:0xffff IA:0x0000000000c2f1bc
    		CL:1 HPP:0x8000000000000000 GPP:000000000000000000
        ....
        [0x000fc0] Trailer F T bsdes:32 dsdes:159 Overflow:0 Time:0xd4ab59a8450fa108
    		C:1 TOD:0xd4ab4ec98ceb3832 1:0x8000000000000000 2:0xd4ab4ec98ceb3832
    
    This output is shown for every sampled data block. The
    output contains the
    
     - basic-sampling data entry
    
     - diagnostic-sampling data entry
    
     - trailer entry
    
    The basic sampling entry and diagnostic sampling entry sizes can be
    extracted using the trailer entries in the SDB.  On older hardware these
    values (bsdes and dsdes in the trailer entry) are reserved and zero.
    Older hardware use hard coded values based on the s390 machine type.
    
    Signed-off-by: default avatarThomas Richter <tmricht@linux.ibm.com>
    Reviewed-by: default avatarHendrik Brueckner <brueckner@linux.ibm.com>
    Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
    Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Link: http://lkml.kernel.org/r/20180802074622.13641-3-tmricht@linux.ibm.com
    Link: http://lkml.kernel.org/r/eda2632e-7919-5ffd-5f68-821e77d216fa@linux.ibm.com
    
    
    [ Merged a fix for a 'tipe puned' problem reported by Michael Ellerman see last Link tag. ]
    [ Removed __packed from two structs, they're already naturally packed and having that. ]
    [ attribute breaks the build in gcc 8.1.1 mips, 4.4.7 x86_64, 7.1.1 ARCompact ISA, etc) ]
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    2b1444f2