摘要:bpftrace自带的kaddr(char *name)函数可以用来返回指定全局变量的地址,通过解引用可以得到该全局变量的值。 例如,打印jiffies可以使用如下代码: printf("jiffies: %lu\n", *kaddr("jiffies"));
阅读全文
摘要:2021年,Roman Gushchin发出了一组patch,提出scheduler bpf的框架,使得用户可以控制调度器的行为。链接:https://lwn.net/Articles/869433/ 这组patch的重点在于模仿BPF LSM通过插入hook点,改变原有kernel执行逻辑。 BP
阅读全文
摘要:libbpf bootstrap GitHub - libbpf/libbpf-bootstrap: Scaffolding for BPF application development with libbpf and BPF CO-RE Building BPF applications wit
阅读全文
摘要:apt-get install -y gcc-multilib
阅读全文
摘要:获取函数的执行时间对性能分析十分有益,这里给出一个示例来测量kernel 函数的执行时间。 kprobe可用来在函数执行的开始加入探测点,kretprobe可以在函数返回前加入探测点,分别在这个两个探测获取时间,其差值可以作为函数的执行时间。相对ftrace,这种方式要精确很多。下面是一个例子,测量
阅读全文
摘要:学习ebpf的中文网站: eBPF 入门开发实践教程零:介绍 eBPF 的基本概念、常见的开发工具 - eunomia ebpf & bcc 中文教程及手册 | Cyrus Blog (cyru1s.com)
阅读全文