From: Yafang Shao <laoar.shao@gmail.com>
To: ast@kernel.org, daniel@iogearbox.net, john.fastabend@gmail.com,
andrii@kernel.org, martin.lau@linux.dev, song@kernel.org,
yhs@fb.com, kpsingh@kernel.org, sdf@google.com,
haoluo@google.com, jolsa@kernel.org, quentin@isovalent.com
Cc: bpf@vger.kernel.org, Yafang Shao <laoar.shao@gmail.com>
Subject: [RFC PATCH bpf-next 8/8] bpftool: Show probed function in perf_event link info
Date: Sun, 28 May 2023 14:20:27 +0000 [thread overview]
Message-ID: <20230528142027.5585-9-laoar.shao@gmail.com> (raw)
In-Reply-To: <20230528142027.5585-1-laoar.shao@gmail.com>
Show the exposed perf_event link info in bpftool. The result as follows,
$ bpftool link show
1: perf_event prog 5
func kernel_clone addr ffffffffb40bc310 offset 0
bpf_cookie 0
pids trace(9726)
$ bpftool link show -j
[{"id":1,"type":"perf_event","prog_id":5,"func":"kernel_clone","addr":18446744072435254032,"offset":0,"bpf_cookie":0,"pids":[{"pid":9726,"comm":"trace"}]}]
Signed-off-by: Yafang Shao <laoar.shao@gmail.com>
---
tools/bpf/bpftool/link.c | 21 ++++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/tools/bpf/bpftool/link.c b/tools/bpf/bpftool/link.c
index 76f1bb2..8493a05 100644
--- a/tools/bpf/bpftool/link.c
+++ b/tools/bpf/bpftool/link.c
@@ -232,6 +232,12 @@ static int show_link_close_json(int fd, struct bpf_link_info *info)
jsonw_lluint(json_wtr, addrs[i]);
jsonw_end_array(json_wtr);
break;
+ case BPF_LINK_TYPE_PERF_EVENT:
+ jsonw_string_field(json_wtr, "func",
+ u64_to_ptr(info->perf_event.name));
+ jsonw_uint_field(json_wtr, "addr", info->perf_event.addr);
+ jsonw_uint_field(json_wtr, "offset", info->perf_event.offset);
+ break;
default:
break;
}
@@ -368,7 +374,7 @@ void netfilter_dump_plain(const struct bpf_link_info *info)
static int show_link_close_plain(int fd, struct bpf_link_info *info)
{
struct bpf_prog_info prog_info;
- const char *prog_type_str;
+ const char *prog_type_str, *buf;
int err;
show_link_header_plain(info);
@@ -428,6 +434,12 @@ static int show_link_close_plain(int fd, struct bpf_link_info *info)
printf(" %0*llx", 16, addrs[i]);
}
break;
+ case BPF_LINK_TYPE_PERF_EVENT:
+ buf = (const char *)u64_to_ptr(info->perf_event.name);
+ if (buf[0] != '\0' || info->perf_event.addr)
+ printf("\n\tfunc %s addr %llx offset %d ", buf,
+ info->perf_event.addr, info->perf_event.offset);
+ break;
default:
break;
}
@@ -454,6 +466,7 @@ static int do_show_link(int fd)
int count;
int err;
+ buf[0] = '\0';
memset(&info, 0, sizeof(info));
again:
err = bpf_link_get_info_by_fd(fd, &info, &len);
@@ -489,6 +502,12 @@ static int do_show_link(int fd)
goto again;
}
}
+ if (info.type == BPF_LINK_TYPE_PERF_EVENT &&
+ !info.perf_event.name) {
+ info.perf_event.name = (unsigned long)&buf;
+ info.perf_event.name_len = sizeof(buf);
+ goto again;
+ }
if (json_output)
show_link_close_json(fd, &info);
--
1.8.3.1
prev parent reply other threads:[~2023-05-28 14:20 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-28 14:20 [RFC PATCH bpf-next 0/8] bpf: Support ->show_fdinfo and ->fill_link_info for kprobe prog Yafang Shao
2023-05-28 14:20 ` [RFC PATCH bpf-next 1/8] bpf: Support ->show_fdinfo for kprobe_multi Yafang Shao
2023-05-29 12:06 ` Jiri Olsa
2023-05-30 1:39 ` Yafang Shao
2023-05-31 0:28 ` Alexei Starovoitov
2023-05-31 3:14 ` Yafang Shao
2023-05-28 14:20 ` [RFC PATCH bpf-next 2/8] bpf: Support ->fill_link_info " Yafang Shao
2023-05-29 2:44 ` kernel test robot
2023-05-30 1:42 ` Yafang Shao
2023-05-29 12:49 ` Jiri Olsa
2023-05-30 1:41 ` Yafang Shao
2023-05-28 14:20 ` [RFC PATCH bpf-next 3/8] bpftool: Show probed function in kprobe_multi link info Yafang Shao
2023-05-30 11:15 ` Quentin Monnet
2023-05-31 3:16 ` Yafang Shao
2023-05-31 0:31 ` Alexei Starovoitov
2023-05-31 3:17 ` Yafang Shao
2023-05-28 14:20 ` [RFC PATCH bpf-next 4/8] bpf: Always expose the probed address Yafang Shao
2023-05-28 14:20 ` [RFC PATCH bpf-next 5/8] bpf: Support ->show_fdinfo for perf_event Yafang Shao
2023-05-28 14:20 ` [RFC PATCH bpf-next 6/8] bpf: Add a common helper bpf_copy_to_user() Yafang Shao
2023-05-28 14:20 ` [RFC PATCH bpf-next 7/8] bpf: Support ->fill_link_info for perf_event Yafang Shao
2023-05-31 0:37 ` Alexei Starovoitov
2023-05-31 3:24 ` Yafang Shao
2023-05-28 14:20 ` Yafang Shao [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230528142027.5585-9-laoar.shao@gmail.com \
--to=laoar.shao@gmail.com \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=haoluo@google.com \
--cc=john.fastabend@gmail.com \
--cc=jolsa@kernel.org \
--cc=kpsingh@kernel.org \
--cc=martin.lau@linux.dev \
--cc=quentin@isovalent.com \
--cc=sdf@google.com \
--cc=song@kernel.org \
--cc=yhs@fb.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.