使用systemtap分析树外内核模块

时间:2019-07-13 23:55:44

标签: linux-kernel profiling kernel-module systemtap

我正在尝试分析专用内核模块,以查找网络情况下的数据包延迟。 “ systemtap”似乎是对内核进行性能分析的方法,但我找不到将外部内核模块的功能指定为探针的方法。

我知道我可以修改内核模块代码以使用跟踪点,kprobes,jprobe和retprobe。 (我保留此选项作为最后的选择)

根据SourceWare上的文档,

  

module(MPATTERN).function(PATTERN)探测点应将MPATTERN作为树外内核模块的完整路径。

     

在上面的探测点列表中,MPATTERN表示一个字符串文字,旨在标识所加载的目标内核模块。对于树内内核模块,名称就足够了(例如“ btrfs”)。该名称还可以包括“ *”,“ []”和“?”通配符以匹配多个树内模块。 通过指定ko文件的完整路径,还支持树外模块。不支持通配符。该文件必须遵循命名为.ko的约定(字符','和'-'替换为'_')。

我尝试了类似下面的操作,但是找不到任何提到的函数名称作为探测点。

probe module("<lkm_path>.ko").function("<function_name>").call

收到此错误

semantic error: while resolving probe point: identifier 'module' at scripts/lkm-histogram.stp:57:7
        source: probe module("<lkm_path>.ko").function("xxx_nic_tx").call {
                      ^

semantic error: no match

对此将提供任何帮助。

0 个答案:

没有答案
相关问题