eBPF:检索固定bpf程序的`fd`

问题描述 投票:2回答:1

我知道eBPF程序可以固定到/sys/fs/bpf(小bpffs的默认位置。例如使用bpftool

$ bpftool prog load ./my_bpf.o /sys/fs/bpf/my_bpf

我期待open("/sys/fs/bpf/my_bpf")会返回内核为my_bpf分配的文件描述符的值。但open()呼吁失败,我认为它返回-EINVAL

在这种情况下,钉扎的目的是什么?我如何正常获得BPF程序的fd,因为它们当前可能有很多加载。我知道libbpf允许从fd检索id,但如果我没有id怎么办?

filesystems file-descriptor bpf ebpf
1个回答
2
投票

bpf(BPF_OBJ_GET, …)包裹在libbpf中的bpf_obj_get()中,由kernel提供返回固定对象的fd。固定对象的路径是bpf_obj_get()的参数。

© www.soinside.com 2019 - 2024. All rights reserved.