Re: bpf: ability to attach freplace to multiple parents
From: Toke Høiland-Jørgensen <hidden>
Date: 2020-05-13 10:25:17
Also in:
bpf
Alexei Starovoitov [off-list ref] writes:
On Tue, May 12, 2020 at 10:34:58AM +0200, Toke Høiland-Jørgensen wrote:quoted
Alexei Starovoitov [off-list ref] writes:quoted
quoted
quoted
Currently fentry/fexit/freplace progs have single prog->aux->linked_prog pointer. It just needs to become a linked list. The api extension could be like this: bpf_raw_tp_open(prog_fd, attach_prog_fd, attach_btf_id); (currently it's just bpf_raw_tp_open(prog_fd)) The same pair of (attach_prog_fd, attach_btf_id) is already passed into prog_load to hold the linked_prog and its corresponding btf_id. I'm proposing to extend raw_tp_open with this pair as well to attach existing fentry/fexit/freplace prog to another target. Internally the kernel verify that btf of current linked_prog exactly matches to btf of another requested linked_prog and if they match it will attach the same prog to two target programs (in case of freplace) or two kernel functions (in case of fentry/fexit).API-wise this was exactly what I had in mind as well.perfect!Hi Alexei I don't suppose you've had a chance to whip up a patch for this, have you? :)On my priority list it's after cap_bpf and sleepable. If it's urgent for you please start hacking.
OK, ACK. Not extremely urgent right now, just wanted to check in with what your plans were. Thanks for letting me know! -Toke