如何将/kernel/sched/*包含到BPF程序中



根据《bpf性能工具》一书,我正在尝试在Linux中使用bpftrace制作一个自定义的bpf程序。我试图包含路径linux/kernel/sched/sched.h中的一些文件。如何才能包含它们?(不仅是/include文件夹,而且来自linux中的linux/kernel/*文件夹?(

为了使用"structrq",我正在尝试合并#include/kernel/sched/sched.h。

我的程序示例是:

#!/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: %dn", comm, pid);
printf("-------------------n");
}

该标头未公开,因此如果要使用rq结构定义或其任何字段,则必须在自己的程序中复制它。

这种定义副本已经存在于bpftrace的示例中,例如struct cfs_rq_partial

最新更新