Skip to content

Commit

Permalink
libbpf: Support repeated legacy kprobes on same function
Browse files Browse the repository at this point in the history
If repeated legacy kprobes on same function in one process,
libbpf will register using the same probe name and got -EBUSY
error. So append index to the probe name format to fix this
problem.

Co-developed-by: Chengming Zhou <zhouchengming@bytedance.com>
Signed-off-by: Qiang Wang <wangqiang.wq.frank@bytedance.com>
Signed-off-by: Chengming Zhou <zhouchengming@bytedance.com>
  • Loading branch information
Qiang Wang authored and intel-lab-lkp committed Dec 25, 2021
1 parent 6c5b6cd commit 4a70a6c
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion tools/lib/bpf/libbpf.c
Expand Up @@ -9891,7 +9891,9 @@ static int append_to_file(const char *file, const char *fmt, ...)
static void gen_kprobe_legacy_event_name(char *buf, size_t buf_sz,
const char *kfunc_name, size_t offset)
{
snprintf(buf, buf_sz, "libbpf_%u_%s_0x%zx", getpid(), kfunc_name, offset);
static int index = 0;
snprintf(buf, buf_sz, "libbpf_%u_%s_0x%zx_%d", getpid(), kfunc_name, offset
__sync_fetch_and_add(&index, 1));
}

static int add_kprobe_event_legacy(const char *probe_name, bool retprobe,
Expand Down

0 comments on commit 4a70a6c

Please sign in to comment.