查看所有tracepoint
perf list
perf追踪tracepoint
perf trace --no-syscalls --event 'net:*'
查看tracepoint的具体参数
sudo python3 /usr/share/bcc/tools/tplist -v 'net:napi_gro_receive_entry'
cat /sys/kernel/debug/tracing/events/net/netif_rx/format
内核vmlinux.h生成
sudo bpftool btf dump file /sys/kernel/btf/vmlinux format c > vmlinux.h
根据tracepoint的具体参数找到vmlinux.h中对应的结构体
内核已经提供了所有Tracepoint数据的类似类型,一般命名为trace_event_raw_
,如trace_event_raw_kfree_skb
。但有时内核中的少量Tracepoints会重用常用的类型,因此如果上述模式不起作用,则需要在内核源码(或 vmlinux.h
)中查找具体的类型名称,一般命名为trace_event_raw__template
。例如vmlinux.h
中不存在napi_gro_receive_entry
对应的类型,但通过cat /sys/kernel/debug/tracing/events/net/napi_gro_receive_entry/format
,能够查看到其参数如下
根据红框中的数据结构可以找到对应的trace_event_raw_net_dev_rx_verbose_template
查看可probe的函数符号
并非所有的函数都可probe,例如一些内联的函数无法probe,可通过如下办法查看可probe的内核函数
sudo cat /sys/kernel/debug/tracing/available_filter_functions
或者
cat /proc/kallsyms
查看bpf_trace_printk()的输出
sudo cat /sys/kernel/debug/tracing/trace_pipe
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
钡铼技术以太网IO模块是一种数据采集与控制设备。它利用以太网作为通信手段,将各种工业控制传感器与执行器的数据传输到计算机或其他设备上进行管理和监控。热电厂作为现代化的能源供应基地,需要广泛应用各种智能控制技术,以提高运行效率,降低成本,提高安全性。在这个背景下…