laik / demo

2 stars 0 forks source link

eBPF 问题总结 #3

Open laik opened 3 years ago

laik commented 3 years ago
  1. 内核版本依赖问题? 需要什么样的内核才能支持xdp,xdp如何与tc结合; ebpf 可以使用kprobe/xdp/tc 等等事件结合,处理基于事件注册的方式处理相应的程序数据,xdp由于比较底层,只能处理一些低层次指令,例如协议包XDP_PASS/XDP_DROP , TC 常用的有5个action,总共有9个action(https://cloud.tencent.com/developer/article/1626377 ) , 可以结合上层tc实现防火,协议处理等功能;

  2. eBPF 程序类型都有哪些,举例说明哪些功能可以做些什么,例如kprobe,xdp,tc,perf,socket,cgroup,socket_raw事件时都能做些 什么? eBPF在内核子系统中是什么样的架构模式运行?

  3. eBPF 映射如何实现原子锁,在用户空间呈现什么模式访问,与内核空间访问有什么区别?

  4. eBPF 映射map如何操作元素,为什么这样操作,用户空间与内核空间基于什么方式通讯?为什么这么设计?

  5. eBPF 基于内核版本的指令限制为4096,如何利用tail call(尾调用)的方式执行多个ebpf程序,限定最多一次调用多少个?为什么这么设计?

  6. eBPF 检查器基于什么样的模型检查验证程序,检查必须满足哪些条件才可以通过? 如何debug eBPF程序?