> On Jun 15, 2023, at 7:19 PM, Leizhen (ThunderTown) <thunder.leizhen@xxxxxxxxxx> wrote: > > On 2023/6/16 1:00, Song Liu wrote: >> With CONFIG_LTO_CLANG, kallsyms.c:cleanup_symbol_name() removes symbols >> suffixes during comparison. This is problematic for livepatch, as >> kallsyms_on_each_match_symbol may find multiple matches for the same >> symbol, and fail with: >> >> livepatch: unresolvable ambiguity for symbol 'xxx' in object 'yyy' > > Did you forget to specify 'old_sympos'? When there are multiple symbols with > the same name, we need to specify the sequence number of the symbols to be > matched. old_sympos is indeed 0 here. However, the issue with CONFIG_LTO_CLANG is different. Here is an example: $ grep bpf_verifier_vlog /proc/kallsyms ffffffff81549f60 t bpf_verifier_vlog ffffffff8268b430 d bpf_verifier_vlog._entry ffffffff8282a958 d bpf_verifier_vlog._entry_ptr ffffffff82e12a1f d bpf_verifier_vlog.__already_done kallsyms_on_each_match_symbol matches "bpf_verifier_vlog" to all of these because of cleanup_symbol_name(). IOW, we only have one function called bpf_verifier_vlog, but kallsyms_on_each_match_symbol() matches it to bpf_verifier_vlog.*. Does this make sense? Thanks, Song