“ sudo性能脚本-g python”命令导致RHEL8.2 Linux中的分段错误

时间:2020-08-10 11:02:30

标签: linux linux-kernel profiling redhat perf

我不熟悉使用“性能”工具,探索具有python功能的性能脚本。

我已经通过以下命令生成了perf.data

(pft) [csaraiya@localhost Desktop]$ sudo perf sched record -- sleep 1

[ perf record: Woken up 1 times to write data ] 
[ perf record: Captured and wrote 1.548 MB perf.data (34 samples) ]

下面是详细的日志...

sudo perf script -g python -v 

 
registering plugin: /usr/lib64/traceevent/plugins/plugin_cfg80211.so 
registering plugin: /usr/lib64/traceevent/plugins/plugin_function.so 
registering plugin: /usr/lib64/traceevent/plugins/plugin_hrtimer.so 
registering plugin: /usr/lib64/traceevent/plugins/plugin_jbd2.so 
registering plugin: /usr/lib64/traceevent/plugins/plugin_kmem.so
registering plugin: /usr/lib64/traceevent/plugins/plugin_kvm.so
registering plugin: /usr/lib64/traceevent/plugins/plugin_mac80211.so
registering plugin: /usr/lib64/traceevent/plugins/plugin_sched_switch.so
registering plugin: /usr/lib64/traceevent/plugins/plugin_scsi.so
registering plugin: /usr/lib64/traceevent/plugins/plugin_xen.so
overriding event (314) sched:sched_wakeup with new print handler
overriding event (313) sched:sched_wakeup_new with new print handler
overriding event (312) sched:sched_switch with new print handler
build id event received for [kernel.kallsyms]: 775af45c3e14e58702909dda76>
build id event received for [vdso]: 2989a6ff69be8af0b0edc2bc57919c3fc1ef1>
**(END)Segmentation fault**

sudo perf buildid-list -v  perf.data
registering plugin: /usr/lib64/traceevent/plugins/plugin_cfg80211.so
registering plugin: /usr/lib64/traceevent/plugins/plugin_function.so
registering plugin: /usr/lib64/traceevent/plugins/plugin_hrtimer.so
registering plugin: /usr/lib64/traceevent/plugins/plugin_jbd2.so
registering plugin: /usr/lib64/traceevent/plugins/plugin_kmem.so
registering plugin: /usr/lib64/traceevent/plugins/plugin_kvm.so
registering plugin: /usr/lib64/traceevent/plugins/plugin_mac80211.so
registering plugin: /usr/lib64/traceevent/plugins/plugin_sched_switch.so
registering plugin: /usr/lib64/traceevent/plugins/plugin_scsi.so
registering plugin: /usr/lib64/traceevent/plugins/plugin_xen.so
overriding event (314) sched:sched_wakeup with new print handler
overriding event (313) sched:sched_wakeup_new with new print handler
overriding event (312) sched:sched_switch with new print handler
build id event received for [kernel.kallsyms]: 775af45c3e14e58702909dda76>
build id event received for [vdso]: 2989a6ff69be8af0b0edc2bc57919c3fc1ef1>
775af45c3e14e58702909dda765d6143dbf57d8f [kernel.kallsyms]
2989a6ff69be8af0b0edc2bc57919c3fc1ef1f87 [vdso]


sudo perf buildid-list -v --with-hits  perf.data
registering plugin: /usr/lib64/traceevent/plugins/plugin_cfg80211.so
registering plugin: /usr/lib64/traceevent/plugins/plugin_function.so
registering plugin: /usr/lib64/traceevent/plugins/plugin_hrtimer.so
registering plugin: /usr/lib64/traceevent/plugins/plugin_jbd2.so
registering plugin: /usr/lib64/traceevent/plugins/plugin_kmem.so
registering plugin: /usr/lib64/traceevent/plugins/plugin_kvm.so
registering plugin: /usr/lib64/traceevent/plugins/plugin_mac80211.so
registering plugin: /usr/lib64/traceevent/plugins/plugin_sched_switch.so
registering plugin: /usr/lib64/traceevent/plugins/plugin_scsi.so
registering plugin: /usr/lib64/traceevent/plugins/plugin_xen.so
overriding event (314) sched:sched_wakeup with new print handler
overriding event (313) sched:sched_wakeup_new with new print handler
overriding event (312) sched:sched_switch with new print handler
build id event received for [kernel.kallsyms]: 775af45c3e14e58702909dda76>
build id event received for [vdso]: 2989a6ff69be8af0b0edc2bc57919c3fc1ef1>
Using /proc/kcore for kernel data
Using /proc/kallsyms for symbols
775af45c3e14e58702909dda765d6143dbf57d8f /proc/kcore



(pft) [csaraiya@localhost ~]$ uname -r 
4.18.0-193.14.3.el8_2.x86_64

Python 3.6.8 

[csaraiya@localhost ~]$ perf --version 
perf version 4.18.0-193.14.3.el8_2.x86_64

我尝试通过从注释中指定的链接下载perf并重新编译它。

with kernel-5.0.0-37-generic

具有以下gdb日志

Program received signal SIGSEGV, Segmentation fault.
__strlen_avx2 () at ../sysdeps/x86_64/multiarch/strlen-avx2.S:62
62  ../sysdeps/x86_64/multiarch/strlen-avx2.S: No such file or directory.
(gdb) bt
#0  __strlen_avx2 () at ../sysdeps/x86_64/multiarch/strlen-avx2.S:62
#1  0x00007ffff66c4563 in _IO_vfprintf_internal (s=s@entry=0x555555dffd70, 
    format=format@entry=0x555555a0f5b7 "def %s__%s(", 
    ap=ap@entry=0x7fffffffbb90) at vfprintf.c:1643
#2  0x00007ffff6799676 in ___fprintf_chk (fp=fp@entry=0x555555dffd70, 
    flag=flag@entry=1, format=format@entry=0x555555a0f5b7 "def %s__%s(")
    at fprintf_chk.c:35
#3  0x0000555555852b1c in fprintf (__fmt=0x555555a0f5b7 "def %s__%s(", 
    __stream=0x555555dffd70) at /usr/include/x86_64-linux-gnu/bits/stdio2.h:97
#4  python_generate_script (pevent=0x555555df2b70, outfile=<optimized out>)
    at util/scripting-engines/trace-event-python.c:1642
#5  0x000055555572760a in cmd_script (argc=<optimized out>, 
    argv=<optimized out>) at builtin-script.c:3673
#6  0x0000555555776e51 in run_builtin (p=0x555555c7e6d8 <commands+408>, 
    argc=4, argv=0x7fffffffe590) at perf.c:302
#7  0x000055555577715e in handle_internal_command (argc=4, argv=0x7fffffffe590)
    at perf.c:354
#8  0x00005555556f4a11 in run_argv (argcp=<synthetic pointer>, 
    argv=<synthetic pointer>) at perf.c:398
#9  main (argc=<optimized out>, argv=0x7fffffffe590) at perf.c:520
(gdb) 

0 个答案:

没有答案
相关问题