arch/x86/coco/sev/Makefile | 2 ++ include/linux/kasan-checks.h | 4 ++-- include/linux/kcsan-checks.h | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-)
Details:
- ❯❯ clang --version
Debian clang version 19.1.7 (3+build5)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/lib/llvm-19/bin
- Kernel config:
https://gist.githubusercontent.com/bjackman/bbfdf4ec2e1dfd0e18657174f0537e2c/raw/a88dcc6567d14c69445e7928a7d5dfc23ca9f619/gistfile0.txt
Note I also get this error:
vmlinux.o: warning: objtool: set_ftrace_ops_ro+0x3b: relocation to !ENDBR: machine_kexec_prepare+0x810
That one's a total mystery to me. I guess it's better to "fix" the SEV
one independently rather than waiting until I know how to fix them both.
Note I also mentioned other similar errors in [0]. Those errors don't
exist in Linus' master and I didn't note down where I saw them. Either
they have since been fixed, or I observed them in Google's internal
codebase where they were instroduced downstream.
As discussed in [2], the GCOV+*SAN issue is attacked from two angles:
both adding __always_inline to the instrumentation helpers AND disabling
GCOV for noinstr.c. Only one or the other of these things is needed to
make the build error go away, but they both make sense in their own
right and both may serve to prevent other similar errors from cropping
up in future.
Signed-off-by: Brendan Jackman <jackmanb@google.com>
---
Changes in v2:
- Also disable GCOV for noinstr.c (i.e. squash in [0]).
- Link to v1: [2]
[0] https://lore.kernel.org/all/DERNCQGNRITE.139O331ACPKZ9@google.com/
[1] https://lore.kernel.org/all/20251117-b4-sev-gcov-objtool-v1-1-54f7790d54df@google.com/
[2] https://lore.kernel.org/r/20251208-gcov-inline-noinstr-v1-0-623c48ca5714@google.com
---
Brendan Jackman (3):
kasan: mark !__SANITIZE_ADDRESS__ stubs __always_inline
kcsan: mark !__SANITIZE_THREAD__ stub __always_inline
x86/sev: Disable GCOV on noinstr object
arch/x86/coco/sev/Makefile | 2 ++
include/linux/kasan-checks.h | 4 ++--
include/linux/kcsan-checks.h | 2 +-
3 files changed, 5 insertions(+), 3 deletions(-)
---
base-commit: 8f0b4cce4481fb22653697cced8d0d04027cb1e8
change-id: 20251208-gcov-inline-noinstr-1550cfee445c
Best regards,
--
Brendan Jackman <jackmanb@google.com>
On Mon, 15 Dec 2025 at 11:12, Brendan Jackman <jackmanb@google.com> wrote: > > Details: > > - ❯❯ clang --version > Debian clang version 19.1.7 (3+build5) > Target: x86_64-pc-linux-gnu > Thread model: posix > InstalledDir: /usr/lib/llvm-19/bin > > - Kernel config: > > https://gist.githubusercontent.com/bjackman/bbfdf4ec2e1dfd0e18657174f0537e2c/raw/a88dcc6567d14c69445e7928a7d5dfc23ca9f619/gistfile0.txt > > Note I also get this error: > > vmlinux.o: warning: objtool: set_ftrace_ops_ro+0x3b: relocation to !ENDBR: machine_kexec_prepare+0x810 > > That one's a total mystery to me. I guess it's better to "fix" the SEV > one independently rather than waiting until I know how to fix them both. > > Note I also mentioned other similar errors in [0]. Those errors don't > exist in Linus' master and I didn't note down where I saw them. Either > they have since been fixed, or I observed them in Google's internal > codebase where they were instroduced downstream. > > As discussed in [2], the GCOV+*SAN issue is attacked from two angles: > both adding __always_inline to the instrumentation helpers AND disabling > GCOV for noinstr.c. Only one or the other of these things is needed to > make the build error go away, but they both make sense in their own > right and both may serve to prevent other similar errors from cropping > up in future. > > Signed-off-by: Brendan Jackman <jackmanb@google.com> > --- > Changes in v2: > - Also disable GCOV for noinstr.c (i.e. squash in [0]). > - Link to v1: [2] > > [0] https://lore.kernel.org/all/DERNCQGNRITE.139O331ACPKZ9@google.com/ > [1] https://lore.kernel.org/all/20251117-b4-sev-gcov-objtool-v1-1-54f7790d54df@google.com/ > [2] https://lore.kernel.org/r/20251208-gcov-inline-noinstr-v1-0-623c48ca5714@google.com > > --- > Brendan Jackman (3): > kasan: mark !__SANITIZE_ADDRESS__ stubs __always_inline > kcsan: mark !__SANITIZE_THREAD__ stub __always_inline > x86/sev: Disable GCOV on noinstr object Acked-by: Marco Elver <elver@google.com> But please double check if you missed any __always_inline on stubs (see my comment in "kcsan: mark !__SANITIZE_THREAD__ stub __always_inline"). I don't know which tree this should go through, but since it deals with KASAN and GCOV, perhaps -mm would be appropriate (also for the KCSAN patch this time). There shouldn't be any conflicts with other patches AFAIK. Thanks, -- Marco
© 2016 - 2025 Red Hat, Inc.