From: Xu Kuohai <xukuohai@xxxxxxxxxx> Add kernel symbol for struct_ops trampoline. Without kernel symbol for struct_ops trampoline, the unwinder may produce unexpected stacktraces. For example, the x86 ORC and FP unwinder stops stacktrace on a struct_ops trampoline address since there is no kernel symbol for the address. v3: - Add a separate cleanup patch to replace links_cnt with funcs_cnt - Allocate ksyms on-demand in update_elem() to stay with the links allocation way - Set ksym name to prog__<struct_ops_name>_<member_name> v2: https://lore.kernel.org/bpf/20241101111948.1570547-1-xukuohai@xxxxxxxxxxxxxxx/ - Refine the commit message for clarity and fix a test bot warning v1: https://lore.kernel.org/bpf/20241030111533.907289-1-xukuohai@xxxxxxxxxxxxxxx/ Xu Kuohai (2): bpf: Use function pointers count as struct_ops links count bpf: Add kernel symbol for struct_ops trampoline include/linux/bpf.h | 3 +- kernel/bpf/bpf_struct_ops.c | 114 ++++++++++++++++++++++++++++++++---- kernel/bpf/dispatcher.c | 3 +- kernel/bpf/trampoline.c | 9 ++- 4 files changed, 114 insertions(+), 15 deletions(-) -- 2.39.5