• 2024-11-12内核tracepoint的注册回调及添加的方法
    一、背景内核开发时往往需要做一些内核态函数的监测或者内核状态的监测,就需要用一些调试手段来观测。常用的内核态的观测如kprobe和tracepoint,但是kprobe往往受制于一些系统的限制,很多系统并没有打开kprobe选项,这样我们不能通过kprobe来探测。但是tracepoint一般都是打开的,毕
  • 2024-04-03linux tracepoint增加
    引入tracepoint的背景当需要获取内核的debug信息时,通常你会通过以下printk的方式打印信息:voidtrace_func(){//……printk("输出信息");//……}缺点:内核中printk是统一控制的,各个模块的printk都会被打印,无法只打印需要关注的模块如果需要修改/新增打印信
  • 2024-03-14Using the TRACE_EVENT() macro (Part 1)
    如果你对tracepoint后面的机制感兴趣,可以阅读关于TRACE_EVENT的三篇文章。这一系列文章对tracepoint后面的机制进行了详细讲解,以及其使用方法都有涉及。该系列文章出现在lwn.net上。注意,不要被英文吓住了,我保证,你认真读完这系列文章后,tracepoint后面的秘密不在是秘密。Using
  • 2024-02-07如何利用内核跟踪点排查短时进程问题?
    在排查系统CPU使用率高的问题时,很可能遇到过这样的困惑:明明通过 top 命令发现系统的CPU使用率(特别是用户CPU使用率)特别高,但通过 ps、pidstat 等工具都找不出CPU使用率高的进程。这是什么原因导致的呢?一般情况下,这类问题很可能是以下两个原因导致的:第一,应用程序里面
  • 2023-12-15Linux tracepoint使用和理解
    参考:如何使用TRACE_EVENT()宏来创建跟踪点1.如何查看tracepoint/sys/kernel/debug/tracing/events/通过perflisttracepoint查看2.tracepoint理解因此tracepoint方式如下:#undefTRACE_SYSTEM#defineTRACE_SYSTEMxhr_test#if!defined(_TRACE_TE_TEST_H)||def