Description of problem:
While fiddling with bug 597329 verification, I played with the benchmark a bit, and encountered a kernel read fault, on s390x exclusively. See steps to reproduce.
Version-Release number of selected component (if applicable):
seems always: I tried two separate boxes, occured on both.
Steps to Reproduce:
1. clone upstream git repo
2. go to scripts/probe_perf
3. do the following (it is an excerpt of the bench.sh script):
# dtrace -G -s bench_.d -D$1UPROBE_SDT
# dtrace -G -s bench_.d -DUPROBE_SDT
# dtrace --types -h -s bench_.d -DUPROBE_SDT
# gcc -DUPROBE_SDT -DLOOP=10 bench_.o bench.c -o bench-uprobe.x -I. -I/include -g
# stap -DSTP_NO_OVERLOAD=1 -g bench.stp ./bench-uprobe.x UPROBE_SDT -c "taskset 1 /usr/bin/time ./bench-uprobe.x" -v
Pass 1: parsed user script and 68 library script(s) using 29444virt/20664res/2736shr kb, in 170usr/10sys/180real ms.
Pass 2: analyzed script: 18 probe(s), 9 function(s), 0 embed(s), 9 global(s) using 30288virt/22096res/3460shr kb, in 10usr/0sys/10real ms.
Pass 3: translated to C into "/tmp/stapM2rZTV/stap_bfc9c4d6abef90bc86a8585e384059ac_11532.c" using 101964virt/22588res/3784shr kb, in 10usr/60sys/67real ms.
Pass 4, preamble: (re)building SystemTap's version of uprobes.
Pass 4: compiled C into "stap_bfc9c4d6abef90bc86a8585e384059ac_11532.ko" in 3500usr/460sys/3993real ms.
Pass 5: starting run.
ERROR: kernel read fault at 0x000003ffff9b8ed0 (addr) near identifier '$arg1' at bench.stp:7:38
0.00user 0.00system 0:00.01elapsed 42%CPU (0avgtext+0avgdata 1984maxresident)k
0inputs+8outputs (0major+197minor)pagefaults 0swaps
WARNING: Number of errors: 1, skipped probes: 0
Pass 5: run completed in 10usr/70sys/266real ms.
Pass 5: run failed. Try again with another '--vp 00001' option.
Because it is s390x specific, and I haven't seen it in any other systemtap use case, I've flagged this bug for 6.1.0.
Technical note added. If any revisions are required, please edit the "Technical Notes" field
accordingly. All revisions will be proofread by the Engineering Content Services team.
Systemtap provides bench.sh, a script that compiles benchmark code on
a system, then monitors the system as it runs the code. The benchmark
code previously provided with systemtap was designed to run on the 64-bit
x86 architecture. Therefore, attempting to run the script on other
architectures would fail. This updated package provides code that runs
on architectures other than 64-bit x86. Users of systemtap can now
measure probe performance on all architectures supported by Red Hat.
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.