Re: [PATCH 5/7] perf test: test_intel_pt.sh: Add jitdump test

From: Arnaldo Carvalho de Melo
Date: Fri Oct 14 2022 - 13:35:45 EST


Em Fri, Oct 14, 2022 at 02:33:39PM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Fri, Oct 14, 2022 at 02:32:19PM -0300, Arnaldo Carvalho de Melo escreveu:
> > Em Fri, Oct 14, 2022 at 02:28:58PM -0300, Arnaldo Carvalho de Melo escreveu:
> > > Miscellaneous Intel PT testing: Ok
>
> > Actually:
>
> > --- Test tracing self-modifying code that uses jitdump ---
> > [ perf record: Woken up 1 times to write data ]
> > [ perf record: Captured and wrote 0.018 MB /tmp/perf-test-intel-pt-sh.GJoKOxGVFY/tmp-perf.data ]
> >
> > Warning:
> > 1 instruction trace errors
> > /home/acme/git/perf
> > Decode failed, 1 errors
> > Warning:
> > 1 instruction trace errors
> > instruction trace error type 1 time 494778.777081924 cpu 3 pid 309650 tid 309650 ip 0x7f0972f22009 code 5: Failed to get instruction
> > --- Cleaning up ---
> > --- Done ---
> > test child finished with -1
> > ---- end ----
> > Miscellaneous Intel PT testing: FAILED!
> > [root@quaco perf]#
> > [root@quaco perf]# pwd
> > /home/acme/git/perf
>
> I see... nevermind, this is what is expected, failing now, then the fix,
> then stops failing, nothing to see here, move along 8-)

Just for completeness sake, after the genelf.h fix:

[root@quaco perf]# perf test "Miscellaneous Intel PT testing"
110: Miscellaneous Intel PT testing : Ok
[root@quaco perf]# perf test -v "Miscellaneous Intel PT testing"
110: Miscellaneous Intel PT testing :
--- start ---
test child forked, pid 314597
--- Test system-wide sideband ---
Checking for CPU-wide recording on CPU 0
OK
Checking for CPU-wide recording on CPU 1
OK
Linux
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 1.189 MB /tmp/perf-test-intel-pt-sh.TRr45lCVrl/test-perf.data ]
OK
--- Test per-thread recording ---
Workload PIDs are 314619 and 314620
perf PID is 314631
Waiting for "perf record has started" message
OK
pid 314619 cpu -1 fd 5 : sys_perf_event_open: pid 314619 cpu -1 group_fd -1 flags 0x8 = 5
pid 314623 cpu -1 fd 6 : sys_perf_event_open: pid 314623 cpu -1 group_fd -1 flags 0x8 = 6
pid 314620 cpu -1 fd 7 : sys_perf_event_open: pid 314620 cpu -1 group_fd -1 flags 0x8 = 7
pid 314622 cpu -1 fd 8 : sys_perf_event_open: pid 314622 cpu -1 group_fd -1 flags 0x8 = 8
pid 314619 cpu -1 fd 9 : sys_perf_event_open: pid 314619 cpu -1 group_fd -1 flags 0x8 = 9
pid 314623 cpu -1 fd 10 : sys_perf_event_open: pid 314623 cpu -1 group_fd -1 flags 0x8 = 10
pid 314620 cpu -1 fd 11 : sys_perf_event_open: pid 314620 cpu -1 group_fd -1 flags 0x8 = 11
pid 314622 cpu -1 fd 12 : sys_perf_event_open: pid 314622 cpu -1 group_fd -1 flags 0x8 = 12
fd 5 : idx 0: mmapping fd 5
fd 9 fd_to 5 : idx 0: set output fd 9 -> 5
fd 6 : idx 1: mmapping fd 6
fd 10 fd_to 6 : idx 1: set output fd 10 -> 6
fd 7 : idx 2: mmapping fd 7
fd 11 fd_to 7 : idx 2: set output fd 11 -> 7
fd 8 : idx 3: mmapping fd 8
fd 12 fd_to 8 : idx 3: set output fd 12 -> 8
Checking 8 fds
OK
--- Test per-thread (incl. kernel) recording ---
Workload PIDs are 315355 and 315356
perf PID is 315367
Waiting for "perf record has started" message
OK
pid 315355 cpu -1 fd 5 : sys_perf_event_open: pid 315355 cpu -1 group_fd -1 flags 0x8 = 5
pid 315358 cpu -1 fd 6 : sys_perf_event_open: pid 315358 cpu -1 group_fd -1 flags 0x8 = 6
pid 315356 cpu -1 fd 7 : sys_perf_event_open: pid 315356 cpu -1 group_fd -1 flags 0x8 = 7
pid 315359 cpu -1 fd 8 : sys_perf_event_open: pid 315359 cpu -1 group_fd -1 flags 0x8 = 8
pid 315355 cpu -1 fd 9 : sys_perf_event_open: pid 315355 cpu -1 group_fd -1 flags 0x8 = 9
pid 315358 cpu -1 fd 10 : sys_perf_event_open: pid 315358 cpu -1 group_fd -1 flags 0x8 = 10
pid 315356 cpu -1 fd 11 : sys_perf_event_open: pid 315356 cpu -1 group_fd -1 flags 0x8 = 11
pid 315359 cpu -1 fd 12 : sys_perf_event_open: pid 315359 cpu -1 group_fd -1 flags 0x8 = 12
pid -1 cpu 0 fd 13 : sys_perf_event_open: pid -1 cpu 0 group_fd -1 flags 0x8 = 13
pid -1 cpu 1 fd 14 : sys_perf_event_open: pid -1 cpu 1 group_fd -1 flags 0x8 = 14
pid -1 cpu 2 fd 15 : sys_perf_event_open: pid -1 cpu 2 group_fd -1 flags 0x8 = 15
pid -1 cpu 3 fd 16 : sys_perf_event_open: pid -1 cpu 3 group_fd -1 flags 0x8 = 16
pid -1 cpu 4 fd 17 : sys_perf_event_open: pid -1 cpu 4 group_fd -1 flags 0x8 = 17
pid -1 cpu 5 fd 18 : sys_perf_event_open: pid -1 cpu 5 group_fd -1 flags 0x8 = 18
pid -1 cpu 6 fd 19 : sys_perf_event_open: pid -1 cpu 6 group_fd -1 flags 0x8 = 19
pid -1 cpu 7 fd 20 : sys_perf_event_open: pid -1 cpu 7 group_fd -1 flags 0x8 = 20
fd 5 : idx 0: mmapping fd 5
fd 9 fd_to 5 : idx 0: set output fd 9 -> 5
fd 6 : idx 1: mmapping fd 6
fd 10 fd_to 6 : idx 1: set output fd 10 -> 6
fd 7 : idx 2: mmapping fd 7
fd 11 fd_to 7 : idx 2: set output fd 11 -> 7
fd 8 : idx 3: mmapping fd 8
fd 12 fd_to 8 : idx 3: set output fd 12 -> 8
fd 13 : idx 4: mmapping fd 13
fd 14 : idx 5: mmapping fd 14
fd 15 : idx 6: mmapping fd 15
fd 16 : idx 7: mmapping fd 16
fd 17 : idx 8: mmapping fd 17
fd 18 : idx 9: mmapping fd 18
fd 19 : idx 10: mmapping fd 19
fd 20 : idx 11: mmapping fd 20
Checking 16 fds
OK
--- Test tracing self-modifying code that uses jitdump ---
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.021 MB /tmp/perf-test-intel-pt-sh.TRr45lCVrl/tmp-perf.data ]
/home/acme/git/perf
OK
--- Cleaning up ---
--- Done ---
test child finished with 0
---- end ----
Miscellaneous Intel PT testing: Ok
[root@quaco perf]#