首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法跟踪Linux-5.11.4中softirq_raise的跟踪点

无法跟踪Linux-5.11.4中softirq_raise的跟踪点
EN

Stack Overflow用户
提问于 2021-05-10 17:33:11
回答 1查看 18关注 0票数 0

我正在编写一个内核模块来挂钩softirq_raise的跟踪点。我发现它可以显示在

代码语言:javascript
复制
/sys/kernel/debug/tracing/available_events:irq:softirq_raise   
/sys/kernel/debug/tracing/available_filter_functions:__traceiter_softirq_raise

我的管理员如下所示:

代码语言:javascript
复制
static void probe_softirq_raise(unsigned int vec)
{
    static u64 count = 0;

    if (smp_processor_id() == 5) {
        if ((count % 100) == 0) {
            printk("XXXXXXX CPU = %d, vec = %d\n", smp_processor_id(), vec);
        }
        count ++;
    }
}

我得到的结果如下,

代码语言:javascript
复制
[ 1835.220792] XXXXXXX CPU = 5, vec = 0
[ 1844.275244] XXXXXXX CPU = 5, vec = 0
[ 1853.488791] XXXXXXX CPU = 5, vec = 0
[ 1861.112794] XXXXXXX CPU = 5, vec = 0
[ 1868.336810] XXXXXXX CPU = 5, vec = 0

令我惊讶的是,它只显示vec_nr = 0,没有其他软中断被引发。

但是/proc/softirqs确实在CPU5上显示了许多不同的软件。

我的处理程序有什么问题吗?

EN

回答 1

Stack Overflow用户

发布于 2021-05-11 08:58:42

探测器处理程序的参数是错误的,应该是

代码语言:javascript
复制
static void probe_softirq_raise(void *data, unsigned int vec)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67468027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档