On 4/7/22 9:25 PM, Kui-Feng Lee wrote:
Allow users to attach a 64-bits cookie to a bpf_link of fentry, fexit, or fmod_ret. This patchset includes several major changes. - Define struct bpf_tramp_links to replace bpf_tramp_prog. struct bpf_tramp_links collects bpf_links of a trampoline - Generate a trampoline to call bpf_progs of given bpf_links. - Trampolines always set/reset bpf_run_ctx before/after calling/leaving a tracing program. - Attach a cookie to a bpf_link of fentry/fexit/fmod_ret. The value will be available when running the associated bpf_prog. The major differences from v2: - Move the allocations of run_ctx (struct bpf_tramp_run_ctx) out of invoke_bpf_prog(). - Move hlist_node out of bpf_link and introduce struct bpf_tramp_link to own hlist_node. - Store cookies at struct bpf_tracing_link. - Use SIB byte to reduce the number of instructions to set cookie values. (Use RSP directly) v1: https://lore.kernel.org/all/20220126214809.3868787-1-kuifeng@xxxxxx/ v2: https://lore.kernel.org/bpf/20220316004231.1103318-1-kuifeng@xxxxxx/
Kui-Feng, would be great if you have a chance to rebase, so that the set can also go through BPF CI. Thanks a lot, Daniel