分会场1_董梦龙_TRAMPOLINE & TRACING MULTI-LINK技术探索_报告PPT.pdf

编号:713396 PDF 22页 912.78KB 下载积分:VIP专享
下载报告请您先登录!

分会场1_董梦龙_TRAMPOLINE & TRACING MULTI-LINK技术探索_报告PPT.pdf

1、TRAMPOLINE&TRACING MULTI-LINK技术探索第三届 eBPF开发者大会w w w.e b p f t r a v e l.c o m天翼云科技有限公司 董梦龙中 国 西 安TRAMPOLINE基本原理基本原理第三届 eBPF开发者大会w w w.e b p f t r a v e l.c o m天翼云科技有限公司天翼云科技有限公司第 三 届 e B P F 开 发 者 大 会FTRACE基本原理基本原理-mfentry-fpatchable-function-entry第 三 届 e B P F 开 发 者 大 会TRAMPOLINE基本基本原理原理目标函数和BPF之间的

2、桥梁第 三 届 e B P F 开 发 者 大 会TRAMPOLINE基本基本原理原理优势:direct call,性能高更简洁的方式来获取被跟踪的函数的参数函数返回值的同时,获取函数的参数修改被跟踪函数的返回值用户:BPF_PROG_TYPE_TRACINGBPF_PROG_TYPE_EXTBPF_PROG_TYPE_LSMBPF_LSM_CGROUP第 三 届 e B P F 开 发 者 大 会TRACING劣势劣势资源开销大,创建耗时,不适合大批量场景无法一个BPF程序实现HOOK多个内核函数每秒只能完成几十个BPF程序的attach,超过一千个目标函数,要以分钟为单位代码&数据耦合第

3、三 届 e B P F 开 发 者 大 会TRACING MULTI-LINK(V1)实现了tracing multi-link,可以将单个bpf程序attach到多个内核函数。没有从根本上解决加载慢、资源浪费的问题patch series:https:/lore.kernel.org/netdev/20240311093526.1010158-1- 三 届 e B P F 开 发 者 大 会TRACING MULTI-LINK(V1)global trampoline的逻辑:save regsbpfs=trampoline_lookup_ip(ip)fentry=bpfs-fentriesw

4、hile fentry:fentry(ctx)fentry=fentry-nextcall originsave return valuefexit=bpfs-fexitswhile fexit:fexit(ctx)fexit=fexit-next将每个函数上面挂载的BPF信息,以函数地址为key,保存到全局哈希表中,通过trampoline_lookup_ip函数进行查找,在global trampoline中调用。struct bpf_array struct bpf_prog*fentries;struct bpf_prog*fexits;struct bpf_prog*modify_r

5、eturns;性能太差,不行!第 三 届 e B P F 开 发 者 大 会MIXING TRAMPOLINES(Jirka)第 三 届 e B P F 开 发 者 大 会MIXING TRAMPOLINES(Jirka)https:/lpc.events/event/16/contributions/1350/attachments/1033/1983/plumbers.pdfhttps:/git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git/log/?h=bpf/batch29个patch不行,太过复杂第 三 届 e B P F 开

6、发 者 大 会TRACING MULTI-LINK(V1)零开销的“per-function storage”?第 三 届 e B P F 开 发 者 大 会function meta data核心思想:在每个函数前面预留一定的padding空间(8字节),将我们需要的信息存储到这个padding空间中。该方式需要编译器支持。所幸,编译器提供了-fpatchable-function-entry参数可以实现这一功能。零开销:(struct bpf_array*)(ip-8)第 三 届 e B P F 开 发 者 大 会function meta data挑战:1.每个函数前面预留padding

友情提示

1、下载报告失败解决办法
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站报告下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

本文(分会场1_董梦龙_TRAMPOLINE & TRACING MULTI-LINK技术探索_报告PPT.pdf)为本站 (科技新城) 主动上传,三个皮匠报告文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三个皮匠报告文库(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
客服
商务合作
小程序
服务号
折叠