我一直在尝试使用Brendan的 BCC工具来了解更多关于eBPF程序的工作原理。我试图让它打印任务的CGROUP路径。
由于我对Linux系统编程的知识不多,我想我可以使用来自linux/cgroup.h的函数,特别是task_cgroup_path() ,因为我可以将当前的task_struct * (从bpf_get_current_task()获得)传递给它。我使用的是带有CentOS7内核的4.19.59机器。
但是,当我尝试执行修改后的tcptop时,验证器在last insn is not an exit or jmp错误消息中失败。我想弄明白为什么会发生这种事。
以下是修改后的
嗨,我正在学习如何使用eBPF地图,所以我试着运行我在密件抄送文档上找到的简单代码。
import os
import socket
import time
import logging
import signal
import sys
import zmq
import json
import yaml
import netifaces as ni
from bcc import BPF
from ctypes import *
b = BPF(src_file="tailcall_test.c")
tail_fn = b.load_func("tail_call&