; Copyright (c) 2017-2018, Intel Corporation ; ; Redistribution and use in source and binary forms, with or without ; modification, are permitted provided that the following conditions are met: ; ; * Redistributions of source code must retain the above copyright notice, ; this list of conditions and the following disclaimer. ; * Redistributions in binary form must reproduce the above copyright notice, ; this list of conditions and the following disclaimer in the documentation ; and/or other materials provided with the distribution. ; * Neither the name of Intel Corporation nor the names of its contributors ; may be used to endorse or promote products derived from this software ; without specific prior written permission. ; ; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" ; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ; ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE ; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS ; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN ; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ; POSSIBILITY OF SUCH DAMAGE. ; Test dumping all supported perf event packets. ; ; Variant: verbose format ; ; opt:ptdump --sb:verbose --sb:offset --sb:time ; org 0x1000 bits 64 ; @sb primary(pevent) ; @sb pevent-sample_type(tid, time, id, stream, cpu, identifier) ; @pt p0: psb() ; @sb s0: pevent-mmap-section(text, 1, 1, 1, 1, 0, 1, 2, 3, 4) ; @sb s1: pevent-lost(3, 8, 1, 2, 0, 3, 4, 5, 6) ; @sb s2: pevent-comm(1, 1, foo, 1, 1, 0, 2, 3, 4, 5) ; @sb s3: pevent-comm.exec(2, 2, bar, 2, 2, 0, 3, 4, 5, 6) ; @sb s4: pevent-exit(2, 1, 2, 1, 0, 2, 2, 0, 3, 4, 5, 6) ; @sb s5: pevent-fork(2, 1, 2, 1, 0, 2, 2, 0, 3, 4, 5, 6) ; @sb s6: pevent-aux(0xa000, 0x1000, 0, 2, 2, 0, 3, 4, 5, 6) ; @sb s7: pevent-aux(0xb000, 0x700, 1, 2, 2, 0, 3, 4, 5, 6) ; @sb s8: pevent-itrace-start(1, 2, 1, 2, 2, 3, 4, 5, 6) ; @pt p1: tsc(2) ; @pt p2: psbend() ; @sb s9: pevent-lost-samples(8, 1, 2, 3, 4, 5, 6, 7) ; @sb s10: pevent-switch.in(1, 2, 3, 4, 5, 6, 7) ; @sb s11: pevent-switch.out(1, 2, 3, 4, 5, 6, 7) ; @sb s12: pevent-switch-cpu-wide.in(8, 9, 1, 2, 3, 4, 5, 6, 7) ; @sb s13: pevent-switch-cpu-wide.out(8, 9, 1, 2, 3, 4, 5, 6, 7) section text vstart=0xa000 start=0x1000 nop ; @pt .exp(ptdump) ;%0p0 psb ;%0s0 0000000000000000 PERF_RECORD_MMAP ; pid: 1 ; tid: 1 ; addr: a000 ; len: 1 ; pgoff: 0 ; filename: pevent-dump_verbose.bin ; pid: 1 ; tid: 1 ; time: 0 ; id: 1 ; cpu: 2 ; stream id: 3 ; identifier: 4 ;%0s1 0000000000000000 PERF_RECORD_LOST ; id: 3 ; lost: 8 ; pid: 1 ; tid: 2 ; time: 0 ; id: 3 ; cpu: 4 ; stream id: 5 ; identifier: 6 ;%0s2 0000000000000000 PERF_RECORD_COMM ; pid: 1 ; tid: 1 ; comm: foo ; pid: 1 ; tid: 1 ; time: 0 ; id: 2 ; cpu: 3 ; stream id: 4 ; identifier: 5 ;%0s3 0000000000000000 PERF_RECORD_COMM.EXEC ; pid: 2 ; tid: 2 ; comm: bar ; pid: 2 ; tid: 2 ; time: 0 ; id: 3 ; cpu: 4 ; stream id: 5 ; identifier: 6 ;%0s4 0000000000000000 PERF_RECORD_EXIT ; pid: 2 ; ppid: 1 ; tid: 2 ; ptid: 1 ; time: 0 ; pid: 2 ; tid: 2 ; time: 0 ; id: 3 ; cpu: 4 ; stream id: 5 ; identifier: 6 ;%0s5 0000000000000000 PERF_RECORD_FORK ; pid: 2 ; ppid: 1 ; tid: 2 ; ptid: 1 ; time: 0 ; pid: 2 ; tid: 2 ; time: 0 ; id: 3 ; cpu: 4 ; stream id: 5 ; identifier: 6 ;%0s6 0000000000000000 PERF_RECORD_AUX ; aux offset: a000 ; aux size: 1000 ; flags: 0 ; pid: 2 ; tid: 2 ; time: 0 ; id: 3 ; cpu: 4 ; stream id: 5 ; identifier: 6 ;%0s7 0000000000000000 PERF_RECORD_AUX.TRUNCATED ; aux offset: b000 ; aux size: 700 ; flags: 1 ; pid: 2 ; tid: 2 ; time: 0 ; id: 3 ; cpu: 4 ; stream id: 5 ; identifier: 6 ;%0s8 0000000000000002 PERF_RECORD_ITRACE_START ; pid: 1 ; tid: 2 ; pid: 1 ; tid: 2 ; time: 2 ; id: 3 ; cpu: 4 ; stream id: 5 ; identifier: 6 ;%0p1 tsc 2 ;%0p2 psbend ;%0s9 0000000000000003 PERF_RECORD_LOST_SAMPLES ; lost: 8 ; pid: 1 ; tid: 2 ; time: 3 ; id: 4 ; cpu: 5 ; stream id: 6 ; identifier: 7 ;%0s10 0000000000000003 PERF_RECORD_SWITCH.IN ; pid: 1 ; tid: 2 ; time: 3 ; id: 4 ; cpu: 5 ; stream id: 6 ; identifier: 7 ;%0s11 0000000000000003 PERF_RECORD_SWITCH.OUT ; pid: 1 ; tid: 2 ; time: 3 ; id: 4 ; cpu: 5 ; stream id: 6 ; identifier: 7 ;%0s12 0000000000000003 PERF_RECORD_SWITCH_CPU_WIDE.IN ; prev pid: 8 ; prev tid: 9 ; pid: 1 ; tid: 2 ; time: 3 ; id: 4 ; cpu: 5 ; stream id: 6 ; identifier: 7 ;%0s13 0000000000000003 PERF_RECORD_SWITCH_CPU_WIDE.OUT ; next pid: 8 ; next tid: 9 ; pid: 1 ; tid: 2 ; time: 3 ; id: 4 ; cpu: 5 ; stream id: 6 ; identifier: 7