ebpf
文章平均质量分 83
eBPF 是 Linux Kernel 3.15 中引入的全新设计,将原先的 BPF 发展成一个指令集更复杂、应用范围更广的“内核虚拟机”
魏言华
这个作者很懒,什么都没留下…
展开
-
tc ebpf 实践
1. 用 tc 加载 BPF 程序给定一个为 tc 编译的 BPF 对象文件prog.o, 可以通过tc命令将其加载到一个网 络设备(netdevice)。但与 XDP 不同,设备是否支持 attach BPF 程序并不依赖驱动(即任何网络设备都支持 tc BPF)。下面的命令可以将程序 attach 到em1的ingress网络:$ tc qdisc add dev em1 clsact$ tc filter add dev em1 ingress bpf da obj pro...原创 2021-10-11 17:49:36 · 2362 阅读 · 0 评论 -
bcc安装和基本工具使用说明
目录0. bcc安装0.1 yum 安装0.2 源码安装1.cachestat2.cachetop3. funccount4. trace4.1 trace4.2 trace查看它的传入的参数bcc 提供的所有工具就都安装到 /usr/share/bcc/tools 这个目录中了。不过这里提醒你,bcc 软件包默认不会把这些工具配置到系统的 PATH 路径中,所以你得自己手动配置:$ export PATH=$PATH:/usr/share/bcc/too...原创 2021-10-11 17:30:39 · 4408 阅读 · 0 评论 -
XDP类型的BPF程序
经过上一节的内容,bpf程序和map已经加载到内核当中了。什么时候bpf程序才能发挥它的作用呢?这就需要bpf的应用系统把其挂载到适当的钩子上,当钩子所在点的路径被执行,钩子被触发,BPF程序得以执行。目前应用bpf的子系统分为两大类:tracing:kprobe、tracepoint、perf_event filter:sk_filter、sched_cls、sched_act、xdp、cg_skb接下来分析XDP类型的bpf程序的绑定和触发过程1.Loading via iprou..原创 2021-10-11 17:20:34 · 1211 阅读 · 0 评论 -
ebfp编程常用API介绍
目录1 用户态API1.1 加载prog1.2 查询prog的信息1.3 prog绑定到固定的dev上1.4 创建MAP1.5查询MAP1.6 Object Pinning(钉住对象)2 内核态API2.1 内核总体API2.2 bpf 加载2.2.1 prog 加载2.3 bpf map 操作2.3.1 map 创建2.3.2 map 查找2.3.3BPF_FUNC_map_lookup_elem2.4 obj pin(盯住对象)2...原创 2021-10-11 16:22:54 · 2440 阅读 · 0 评论 -
rdma网络介绍
原创 2021-09-27 17:09:03 · 236 阅读 · 0 评论 -
rdma 编程详解
1.相关名词解释1.1 rdma-core指开源RDMA用户态软件协议栈,(用户空间的驱动)包含用户态框架、各厂商用户态驱动、API帮助手册以及开发自测试工具等。rdma-core在github上维护,我们的用户态Verbs API实际上就是它实现的。https://github.com/linux-rdma/rdma-core1.2kernel RDMA subsystem指开源的Linux内核中的RDMA子系统,(内核空间的驱动)包含RDMA内核框架及各厂商的驱动。RDMA..原创 2021-09-24 09:41:38 · 3218 阅读 · 0 评论 -
rdam 原理解析
1.rdma介绍在网络融合的大趋势下出现的RoCE,使高速、超低延时、极低cpu使用率的RDMA得以部署在目前使用最广泛的以太网上。对比传统DMA的内部总线IO,RDMA通过网络在两个端点的应用软件之间实现buffer的直接传递;而对比传统的网络传输,RDMA又无需操作系统和协议栈的介入。RDMA可以轻易实现端点间的超低延时、超高吞吐量传输,而且基本不需要CPU、OS的资源参与,在高速网络环境下,不必再为网络数据的处理和搬移耗费过多资源。一言概之,RDMA三大特性:CPU offload原创 2021-09-22 19:57:26 · 2616 阅读 · 0 评论 -
linux kernel log 整理
熟悉linux内核,或者看过linux内核源码的同学就会知道,在内核中,有一个类似于c语言的输出函数,叫做printk,使用它,我们可以打印各种我们想要的信息,比如内核当前的运行状态,又或者是我们自己的调试日志等,非常方便。那当我们调用printk函数后,这些输出的信息到哪里去了呢?我们又如何在linux下的用户态,查看这些信息呢?为了解答这些疑问,我画了一张printk全景图,放在了文章开始的部分,这张图既包含了printk在内核态的实现,又包含了其输出的信息在用户态如何查看。我们可...转载 2021-09-22 16:13:12 · 3484 阅读 · 0 评论 -
xdp 原理介绍
原创 2020-12-09 18:34:52 · 2103 阅读 · 0 评论