Hi Masami, Thanks for your review and test! @Sami, could you please also review the set? @Luis, I replied to 1/2 and 2/2 with Fixes tags that I think make most sense. Please let me know if we need changes to the set or more reviews and tests. Thanks, Song > On Aug 12, 2024, at 9:29 PM, Masami Hiramatsu <mhiramat@xxxxxxxxxx> wrote: > > On Wed, 7 Aug 2024 15:05:11 -0700 > Song Liu <song@xxxxxxxxxx> wrote: > >> With CONFIG_LTO_CLANG, the compiler/linker adds .llvm.<hash> suffix to >> local symbols to avoid duplications. Existing scripts/kallsyms sorts >> symbols without .llvm.<hash> suffix. However, this causes quite some >> issues later on. Some users of kallsyms, such as livepatch, have to match >> symbols exactly. >> >> Address this by sorting full symbols at build time, and let kallsyms >> lookup APIs to match the symbols exactly. >> > > I've tested this series and confirmed it makes kprobes work with llvm suffixed > symbols. > > /sys/kernel/tracing # echo "p c_start.llvm.8011538628216713357" >> kprobe_events > /sys/kernel/tracing # cat kprobe_events > p:kprobes/p_c_start_llvm_8011538628216713357_0 c_start.llvm.8011538628216713357 > /sys/kernel/tracing # echo "p c_start" >> kprobe_events > /sys/kernel/tracing # cat kprobe_events > p:kprobes/p_c_start_llvm_8011538628216713357_0 c_start.llvm.8011538628216713357 > p:kprobes/p_c_start_0 c_start > > And ftrace too. > > /sys/kernel/tracing # grep ^c_start available_filter_functions > c_start.llvm.8011538628216713357 > c_start > c_start.llvm.17132674095431275852 > > Tested-by: Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx> > Reviewed-by: Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx> > > for this series. > >> Changes v2 => v3: >> 1. Remove the _without_suffix APIs, as kprobe will not use them. >> (Masami Hiramatsu) >> >> v2: https://lore.kernel.org/live-patching/20240802210836.2210140-1-song@xxxxxxxxxx/T/#u >> >> Changes v1 => v2: >> 1. Update the APIs to remove all .XXX suffixes (v1 only removes .llvm.*). >> 2. Rename the APIs as *_without_suffix. (Masami Hiramatsu) >> 3. Fix another user from kprobe. (Masami Hiramatsu) >> 4. Add tests for the new APIs in kallsyms_selftests. >> >> v1: https://lore.kernel.org/live-patching/20240730005433.3559731-1-song@xxxxxxxxxx/T/#u >> >> Song Liu (2): >> kallsyms: Do not cleanup .llvm.<hash> suffix before sorting symbols >> kallsyms: Match symbols exactly with CONFIG_LTO_CLANG >> >> kernel/kallsyms.c | 55 +++++--------------------------------- >> kernel/kallsyms_selftest.c | 22 +-------------- >> scripts/kallsyms.c | 31 ++------------------- >> scripts/link-vmlinux.sh | 4 --- >> 4 files changed, 9 insertions(+), 103 deletions(-) >> >> -- >> 2.43.5 > > > -- > Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx>