* [PATCH] tracing: ring-buffer: allowlist clang-generated symbols
@ 2026-06-16 16:42 Arnd Bergmann
2026-06-17 13:26 ` Vincent Donnefort
0 siblings, 1 reply; 5+ messages in thread
From: Arnd Bergmann @ 2026-06-16 16:42 UTC (permalink / raw)
To: Steven Rostedt, Masami Hiramatsu, Nathan Chancellor
Cc: Arnd Bergmann, Mathieu Desnoyers, Nick Desaulniers, Bill Wendling,
Justin Stitt, Vincent Donnefort, Marc Zyngier,
Thomas Weißschuh, Paolo Bonzini, linux-kernel,
linux-trace-kernel, llvm
From: Arnd Bergmann <arnd@arndb.de>
In randconfig build testing using clang-22, I came across two
sets of extra symbols in the ring buffer code that may get
inserted by the compiler:
Unexpected symbols in kernel/trace/simple_ring_buffer.o:
U memset
Unexpected symbols in kernel/trace/simple_ring_buffer.o:
U llvm_gcda_emit_arcs
U llvm_gcda_emit_function
U llvm_gcda_end_file
U llvm_gcda_start_file
U llvm_gcda_summary_info
U llvm_gcov_init
Add all of these to the allowlist.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
kernel/trace/Makefile | 1 +
1 file changed, 1 insertion(+)
diff --git a/kernel/trace/Makefile b/kernel/trace/Makefile
index f934ff586bd4..aa8564fb8ff4 100644
--- a/kernel/trace/Makefile
+++ b/kernel/trace/Makefile
@@ -146,6 +146,7 @@ KASAN_SANITIZE_undefsyms_base.o := y
UNDEFINED_ALLOWLIST = __asan __gcov __kasan __kcsan __hwasan __sancov __sanitizer __tsan __ubsan __msan \
__aeabi_unwind_cpp __s390_indirect_jump __x86_indirect_thunk simple_ring_buffer \
+ memset llvm_gcda llvm_gcov \
$(shell $(NM) -u $(obj)/undefsyms_base.o 2>/dev/null | awk '{print $$2}')
quiet_cmd_check_undefined = NM $<
--
2.39.5
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] tracing: ring-buffer: allowlist clang-generated symbols
2026-06-16 16:42 [PATCH] tracing: ring-buffer: allowlist clang-generated symbols Arnd Bergmann
@ 2026-06-17 13:26 ` Vincent Donnefort
2026-07-14 21:56 ` Steven Rostedt
0 siblings, 1 reply; 5+ messages in thread
From: Vincent Donnefort @ 2026-06-17 13:26 UTC (permalink / raw)
To: Arnd Bergmann
Cc: Steven Rostedt, Masami Hiramatsu, Nathan Chancellor,
Arnd Bergmann, Mathieu Desnoyers, Nick Desaulniers, Bill Wendling,
Justin Stitt, Marc Zyngier, Thomas Weißschuh, Paolo Bonzini,
linux-kernel, linux-trace-kernel, llvm
On Tue, Jun 16, 2026 at 06:42:03PM +0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
>
> In randconfig build testing using clang-22, I came across two
> sets of extra symbols in the ring buffer code that may get
> inserted by the compiler:
>
> Unexpected symbols in kernel/trace/simple_ring_buffer.o:
> U memset
>
> Unexpected symbols in kernel/trace/simple_ring_buffer.o:
> U llvm_gcda_emit_arcs
> U llvm_gcda_emit_function
> U llvm_gcda_end_file
> U llvm_gcda_start_file
> U llvm_gcda_summary_info
> U llvm_gcov_init
>
> Add all of these to the allowlist.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
> kernel/trace/Makefile | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/kernel/trace/Makefile b/kernel/trace/Makefile
> index f934ff586bd4..aa8564fb8ff4 100644
> --- a/kernel/trace/Makefile
> +++ b/kernel/trace/Makefile
> @@ -146,6 +146,7 @@ KASAN_SANITIZE_undefsyms_base.o := y
Would "GCOV_PROFILE_undefsyms_base.o := y" work?
>
> UNDEFINED_ALLOWLIST = __asan __gcov __kasan __kcsan __hwasan __sancov __sanitizer __tsan __ubsan __msan \
> __aeabi_unwind_cpp __s390_indirect_jump __x86_indirect_thunk simple_ring_buffer \
> + memset llvm_gcda llvm_gcov \
> $(shell $(NM) -u $(obj)/undefsyms_base.o 2>/dev/null | awk '{print $$2}')
>
> quiet_cmd_check_undefined = NM $<
> --
> 2.39.5
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] tracing: ring-buffer: allowlist clang-generated symbols
2026-06-17 13:26 ` Vincent Donnefort
@ 2026-07-14 21:56 ` Steven Rostedt
2026-07-15 7:38 ` Arnd Bergmann
0 siblings, 1 reply; 5+ messages in thread
From: Steven Rostedt @ 2026-07-14 21:56 UTC (permalink / raw)
To: Vincent Donnefort
Cc: Arnd Bergmann, Masami Hiramatsu, Nathan Chancellor, Arnd Bergmann,
Mathieu Desnoyers, Nick Desaulniers, Bill Wendling, Justin Stitt,
Marc Zyngier, Thomas Weißschuh, Paolo Bonzini, linux-kernel,
linux-trace-kernel, llvm
On Wed, 17 Jun 2026 14:26:36 +0100
Vincent Donnefort <vdonnefort@google.com> wrote:
> On Tue, Jun 16, 2026 at 06:42:03PM +0200, Arnd Bergmann wrote:
> > From: Arnd Bergmann <arnd@arndb.de>
> >
> > In randconfig build testing using clang-22, I came across two
> > sets of extra symbols in the ring buffer code that may get
> > inserted by the compiler:
> >
> > Unexpected symbols in kernel/trace/simple_ring_buffer.o:
> > U memset
> >
> > Unexpected symbols in kernel/trace/simple_ring_buffer.o:
> > U llvm_gcda_emit_arcs
> > U llvm_gcda_emit_function
> > U llvm_gcda_end_file
> > U llvm_gcda_start_file
> > U llvm_gcda_summary_info
> > U llvm_gcov_init
> >
> > Add all of these to the allowlist.
> >
> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> > ---
> > kernel/trace/Makefile | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/kernel/trace/Makefile b/kernel/trace/Makefile
> > index f934ff586bd4..aa8564fb8ff4 100644
> > --- a/kernel/trace/Makefile
> > +++ b/kernel/trace/Makefile
> > @@ -146,6 +146,7 @@ KASAN_SANITIZE_undefsyms_base.o := y
>
> Would "GCOV_PROFILE_undefsyms_base.o := y" work?
Arnd?
-- Steve
>
> >
> > UNDEFINED_ALLOWLIST = __asan __gcov __kasan __kcsan __hwasan __sancov __sanitizer __tsan __ubsan __msan \
> > __aeabi_unwind_cpp __s390_indirect_jump __x86_indirect_thunk simple_ring_buffer \
> > + memset llvm_gcda llvm_gcov \
> > $(shell $(NM) -u $(obj)/undefsyms_base.o 2>/dev/null | awk '{print $$2}')
> >
> > quiet_cmd_check_undefined = NM $<
> > --
> > 2.39.5
> >
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] tracing: ring-buffer: allowlist clang-generated symbols
2026-07-14 21:56 ` Steven Rostedt
@ 2026-07-15 7:38 ` Arnd Bergmann
2026-07-15 23:40 ` Nathan Chancellor
0 siblings, 1 reply; 5+ messages in thread
From: Arnd Bergmann @ 2026-07-15 7:38 UTC (permalink / raw)
To: Steven Rostedt, Vincent Donnefort
Cc: Arnd Bergmann, Masami Hiramatsu, Nathan Chancellor,
Mathieu Desnoyers, Nick Desaulniers, Bill Wendling, Justin Stitt,
Marc Zyngier, Thomas Weißschuh, Paolo Bonzini, linux-kernel,
linux-trace-kernel, llvm
On Tue, Jul 14, 2026, at 23:56, Steven Rostedt wrote:
> On Wed, 17 Jun 2026 14:26:36 +0100 Vincent Donnefort <vdonnefort@google.com> wrote:
>
>> On Tue, Jun 16, 2026 at 06:42:03PM +0200, Arnd Bergmann wrote:
>> > From: Arnd Bergmann <arnd@arndb.de>
>> >
>> > In randconfig build testing using clang-22, I came across two
>> > sets of extra symbols in the ring buffer code that may get
>> > inserted by the compiler:
>> >
>> > Unexpected symbols in kernel/trace/simple_ring_buffer.o:
>> > U memset
>> >
>> > Unexpected symbols in kernel/trace/simple_ring_buffer.o:
>> > U llvm_gcda_emit_arcs
>> > U llvm_gcda_emit_function
>> > U llvm_gcda_end_file
>> > U llvm_gcda_start_file
>> > U llvm_gcda_summary_info
>> > U llvm_gcov_init
>> >
>> > Add all of these to the allowlist.
>> >
>> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
>> > ---
>> > kernel/trace/Makefile | 1 +
>> > 1 file changed, 1 insertion(+)
>> >
>> > diff --git a/kernel/trace/Makefile b/kernel/trace/Makefile
>> > index f934ff586bd4..aa8564fb8ff4 100644
>> > --- a/kernel/trace/Makefile
>> > +++ b/kernel/trace/Makefile
>> > @@ -146,6 +146,7 @@ KASAN_SANITIZE_undefsyms_base.o := y
>>
>> Would "GCOV_PROFILE_undefsyms_base.o := y" work?
>
> Arnd?
Yes, turning off gcov for this file should avoid the llvm_gcda and
llvm_gcov symbols, but not the memset() symbol.
All the other features that leave annotations are handled by
listing the symbol names (__asan __gcov __kasan __kcsan __hwasan
__sancov __sanitizer __tsan __ubsan __msan), so I think for
consistency it makes sense to treat llvm gcov the same way
we handle gcc gcov and the rest.
Arnd
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] tracing: ring-buffer: allowlist clang-generated symbols
2026-07-15 7:38 ` Arnd Bergmann
@ 2026-07-15 23:40 ` Nathan Chancellor
0 siblings, 0 replies; 5+ messages in thread
From: Nathan Chancellor @ 2026-07-15 23:40 UTC (permalink / raw)
To: Arnd Bergmann
Cc: Steven Rostedt, Vincent Donnefort, Arnd Bergmann,
Masami Hiramatsu, Mathieu Desnoyers, Nick Desaulniers,
Bill Wendling, Justin Stitt, Marc Zyngier, Thomas Weißschuh,
Paolo Bonzini, linux-kernel, linux-trace-kernel, llvm
On Wed, Jul 15, 2026 at 09:38:21AM +0200, Arnd Bergmann wrote:
> On Tue, Jul 14, 2026, at 23:56, Steven Rostedt wrote:
> > On Wed, 17 Jun 2026 14:26:36 +0100 Vincent Donnefort <vdonnefort@google.com> wrote:
> >
> >> On Tue, Jun 16, 2026 at 06:42:03PM +0200, Arnd Bergmann wrote:
> >> > From: Arnd Bergmann <arnd@arndb.de>
> >> >
> >> > In randconfig build testing using clang-22, I came across two
> >> > sets of extra symbols in the ring buffer code that may get
> >> > inserted by the compiler:
> >> >
> >> > Unexpected symbols in kernel/trace/simple_ring_buffer.o:
> >> > U memset
> >> >
> >> > Unexpected symbols in kernel/trace/simple_ring_buffer.o:
> >> > U llvm_gcda_emit_arcs
> >> > U llvm_gcda_emit_function
> >> > U llvm_gcda_end_file
> >> > U llvm_gcda_start_file
> >> > U llvm_gcda_summary_info
> >> > U llvm_gcov_init
> >> >
> >> > Add all of these to the allowlist.
> >> >
> >> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> >> > ---
> >> > kernel/trace/Makefile | 1 +
> >> > 1 file changed, 1 insertion(+)
> >> >
> >> > diff --git a/kernel/trace/Makefile b/kernel/trace/Makefile
> >> > index f934ff586bd4..aa8564fb8ff4 100644
> >> > --- a/kernel/trace/Makefile
> >> > +++ b/kernel/trace/Makefile
> >> > @@ -146,6 +146,7 @@ KASAN_SANITIZE_undefsyms_base.o := y
> >>
> >> Would "GCOV_PROFILE_undefsyms_base.o := y" work?
> >
> > Arnd?
>
> Yes, turning off gcov for this file should avoid the llvm_gcda and
> llvm_gcov symbols, but not the memset() symbol.
This would actually turn on GCOV for this translation unit and cause the
llvm_gcda and llvm_gcov symbols to be included in UNDEFINED_ALLOWLIST
via the $(NM) call.
> All the other features that leave annotations are handled by
> listing the symbol names (__asan __gcov __kasan __kcsan __hwasan
> __sancov __sanitizer __tsan __ubsan __msan), so I think for
> consistency it makes sense to treat llvm gcov the same way
> we handle gcc gcov and the rest.
I do tend to agree with this though, as opposed to using
GCOV_PROFILE_... or ..._SANTIZE variables.
--
Cheers,
Nathan
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-07-15 23:40 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-16 16:42 [PATCH] tracing: ring-buffer: allowlist clang-generated symbols Arnd Bergmann
2026-06-17 13:26 ` Vincent Donnefort
2026-07-14 21:56 ` Steven Rostedt
2026-07-15 7:38 ` Arnd Bergmann
2026-07-15 23:40 ` Nathan Chancellor
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox