Chinaunix首页 | 论坛 | 博客
  • 博客访问: 607808
  • 博文数量: 197
  • 博客积分: 7001
  • 博客等级: 大校
  • 技术积分: 2155
  • 用 户 组: 普通用户
  • 注册时间: 2005-02-24 00:29
文章分类

全部博文(197)

文章存档

2022年(1)

2019年(2)

2015年(1)

2012年(100)

2011年(69)

2010年(14)

2007年(3)

2005年(7)

分类: LINUX

2011-02-28 21:08:38

   最近在了解tracepoints,找几个用例学习它的惯用法。到了workqueue tracing,在trace_workqueue.c中有如下代码:
   int __init trace_workqueue_early_init(void)
{
    int ret, cpu;

    for_each_possible_cpu(cpu) {
        spin_lock_init(&workqueue_cpu_stat(cpu)->lock);
        INIT_LIST_HEAD(&workqueue_cpu_stat(cpu)->list);
    }

    ret = register_trace_workqueue_insertion(probe_workqueue_insertion, NULL);
    if (ret)
        goto out;

    ret = register_trace_workqueue_execution(probe_workqueue_execution, NULL);

}
     通常说来,有register_trace_XXX, 一般就有名为XXX 的tracepoints,但是左找右找就是找不着。 到git树的历史中确实找到了曾经存在过的tracepoints,但是最终发现patch

,因为concurrency managed workqueue 的缘故,通过去掉内核编译选项,实际使trace_workqueue.c已经变成了dead code。
     我个人只能说,这种做法是非常不好,为什么不全部removed掉,一旦成熟,可以重新加进来。留僵尸在stable mainline中,好吗?


阅读(1226) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~