> On Feb 12, 2020, at 10:14 AM, Andrii Nakryiko <andrii.nakryiko@xxxxxxxxx> wrote: > > On Wed, Feb 12, 2020 at 10:07 AM Song Liu <songliubraving@xxxxxx> wrote: >> >> >> >>> On Feb 12, 2020, at 9:34 AM, Andrii Nakryiko <andrii.nakryiko@xxxxxxxxx> wrote: >>> >>> On Wed, Feb 12, 2020 at 4:32 AM Eelco Chaudron <echaudro@xxxxxxxxxx> wrote: >>>> >>>> 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"); >>>> bpf_object__load(trace_obj) >>>> >>>> Signed-off-by: Eelco Chaudron <echaudro@xxxxxxxxxx> >> >> >> I am trying to solve the same problem with slightly different approach. >> >> It works as the following (with skeleton): >> >> obj = myobject_bpf__open_opts(&opts); >> bpf_object__for_each_program(prog, obj->obj) >> bpf_program__overwrite_section_name(prog, new_names[id++]); >> err = myobject_bpf__load(obj); >> >> I don't have very strong preference. But I think my approach is simpler? > > I prefer bpf_program__set_attach_target() approach. Section name is a > program identifier and a *hint* for libbpf to determine program type, > attach type, and whatever else makes sense. But there still should be > an API to set all that manually at runtime, thus > bpf_program__set_attach_target(). Doing same by overriding section > name feels like a hack, plus it doesn't handle overriding > attach_program_fd at all. We already have bpf_object_open_opts to handle different attach_program_fd. Can we depreciate bpf_object_open_opts.attach_prog_fd with the bpf_program__set_attach_target() approach? Thanks, Song