根据BPF Performance Tools一书,我正在尝试使用Linux中的bpftrace制作自定义bpf程序。我试图从路径linux/kernel/sched/sched.h包含一些文件。如何包含它们? (不仅是/include文件夹,还是Linux中的linux/kernel/*文件夹?)
我正在尝试合并#include/kernel/sched/sched.h以便使用“struct rq”。
我的程序示例是:
#!/usr/local/bin/bpftrace
#include <kernel/sched/sched.h>
kprobe:load_balance
{
$rq = (struct rq *)arg1;
printf("-------------------\n");
printf("\n");
printf("load_balance: %s pid: %d\n", comm, pid);
printf("-------------------\n");
}
最佳答案
该 header 未公开,因此如果要使用它或其任何字段,则必须在自己的程序中复制rq
结构定义。
bpftrace的示例中已经存在此类定义副本,例如 struct cfs_rq_partial
。