On 12 Feb 2020, at 22:52, Toke Høiland-Jørgensen wrote:
Andrii Nakryiko <andrii.nakryiko@xxxxxxxxx> writes:
On Wed, Feb 12, 2020 at 5:05 AM Toke Høiland-Jørgensen
<toke@xxxxxxxxxx> wrote:
Eelco Chaudron <echaudro@xxxxxxxxxx> writes:
Currently when you want to attach a trace program to a bpf program
the section name needs to match the tracepoint/function semantics.
However the addition of the bpf_program__set_attach_target() API
allows you to specify the tracepoint/function dynamically.
The call flow would look something like this:
xdp_fd = bpf_prog_get_fd_by_id(id);
trace_obj = bpf_object__open_file("func.o", NULL);
prog = bpf_object__find_program_by_title(trace_obj,
"fentry/myfunc");
bpf_program__set_attach_target(prog, xdp_fd,
"fentry/xdpfilt_blk_all");
I think it would be better to have the attach type as a separate arg
instead of encoding it in the function name. I.e., rather:
bpf_program__set_attach_target(prog, xdp_fd,
"xdpfilt_blk_all",
BPF_TRACE_FENTRY);
I agree about not specifying section name prefix (e.g., fentry/). But
disagree that expected attach type (BPF_TRACE_FENTRY) should be part
of this API. We already have bpf_program__set_expected_attach_type()
API, no need to duplicate it here.
Ah yes, forgot about that; just keeping that and making this function
name only is fine with me :)
Toke/Andrii,
Thanks for the feedback, will send out a v2 soon.
//Eelco