cilium v1.15.1
为了实时性,内核态eBPF写入BPF_MAP_TYPE_PERF_EVENT_ARRAY,用户态eBPF从中读取trace和drop事件。
bpf/lib/trace.h
send_trace_notify4函数
bpf/lib/events.h
cilium EVENTS_MAP使用的__NR_CPUS__来自nproc --all即节点cpu数量。
pkg/monitor/agent/agent.go
AttachToEventsMap方法
用户态eBPF连接到event map。
handleEvents方法
消费perf事件,事件时间取读取事件时间。