From: Heiko Carstens <hca@linux.ibm.com>
To: Arnd Bergmann <arnd@kernel.org>
Cc: linux-hardening@vger.kernel.org, linux-s390@vger.kernel.org,
Kees Cook <kees@kernel.org>, Arnd Bergmann <arnd@arndb.de>,
Marco Elver <elver@google.com>,
Andrey Konovalov <andreyknvl@gmail.com>,
Andrey Ryabinin <ryabinin.a.a@gmail.com>,
kasan-dev@googlegroups.com, Vasily Gorbik <gor@linux.ibm.com>,
Alexander Gordeev <agordeev@linux.ibm.com>,
Christian Borntraeger <borntraeger@linux.ibm.com>,
Sven Schnelle <svens@linux.ibm.com>,
Andrew Morton <akpm@linux-foundation.org>,
Nick Terrell <terrelln@fb.com>, David Sterba <dsterba@suse.com>,
Nathan Chancellor <nathan@kernel.org>,
linux-kernel@vger.kernel.org,
Peter Zijlstra <peterz@infradead.org>,
Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>,
Juergen Christ <jchrist@linux.ibm.com>
Subject: Re: [PATCH] [RFC] ubsan: turn off UBSAN_ALIGNMENT on s390
Date: Fri, 15 May 2026 18:53:57 +0200 [thread overview]
Message-ID: <20260515165357.10935D74-hca@linux.ibm.com> (raw)
In-Reply-To: <20260515092057.810542-1-arnd@kernel.org>
On Fri, May 15, 2026 at 11:19:54AM +0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
>
> Testing randconfig builds on s390 with gcc-15, I came across a number of
> seemingly unrelated build failures that ended up all being caused
> by the -fsanitize=alignment option:
>
> s390-linux-ld: kernel/sched/build_policy.o: in function `thread_group_cputime':
> include/linux/seqlock.h:1286:(.text+0x1f738): undefined reference to `__scoped_seqlock_bug'
Does this only happen with __scoped_seqlock_bug()?
I just enabled UBSAN_ALIGNMENT, and with gcc-16 I can see this too.
> What I observe here is a huge increase in generated calls to
> __ubsan_handle_type_mismatch_v1() that ends up thowing off a number of
> compiler optimizations that the kernel relies on.
>
> I have not been able to figure out why this happens on s390 but not arm64,
> arm or x86, if other toolchain versions are affected by the same thing,
> and if this is a problem in gcc or in the kernel itself, e.g. some
> variable being identified as unaligned when it should be aligned.
>
> This clearly needs more investigation to figure out properly what is
> going on, but turning it off is currently required for randconfig testing.
...
> ---
> lib/Kconfig.ubsan | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/lib/Kconfig.ubsan b/lib/Kconfig.ubsan
> index 1ecaae7064d2..3fc03a6b5af4 100644
> --- a/lib/Kconfig.ubsan
> +++ b/lib/Kconfig.ubsan
> @@ -152,6 +152,7 @@ config UBSAN_ENUM
>
> config UBSAN_ALIGNMENT
> bool "Perform checking for misaligned pointer usage"
> + depends on !S390 || BROKEN
Wouldn't it be more appropriate to extend the ifdef at __scoped_seqlock_bug()
which emits an empty function for exactly this reason for some gcc versions
and kernel configs?
That is: add CONFIG_UBSAN_ALIGNMENT to the list (copy-pasted - white space
damage below)?
diff --git a/include/linux/seqlock.h b/include/linux/seqlock.h
index 5a40252b8334..18affa4d21a6 100644
--- a/include/linux/seqlock.h
+++ b/include/linux/seqlock.h
@@ -1259,7 +1259,7 @@ static __always_inline void __scoped_seqlock_cleanup(struct ss_tmp *sst)
extern void __scoped_seqlock_invalid_target(void);
-#if (defined(CONFIG_CC_IS_GCC) && CONFIG_GCC_VERSION < 90000) || defined(CONFIG_KASAN)
+#if (defined(CONFIG_CC_IS_GCC) && CONFIG_GCC_VERSION < 90000) || defined(CONFIG_KASAN) || defined(CONFIG_UBSAN_ALIGNMENT)
/*
* For some reason some GCC-8 architectures (nios2, alpha) have trouble
* determining that the ss_done state is impossible in __scoped_seqlock_next()
next prev parent reply other threads:[~2026-05-15 16:54 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-15 9:19 [PATCH] [RFC] ubsan: turn off UBSAN_ALIGNMENT on s390 Arnd Bergmann
2026-05-15 16:53 ` Heiko Carstens [this message]
2026-05-15 20:51 ` Arnd Bergmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260515165357.10935D74-hca@linux.ibm.com \
--to=hca@linux.ibm.com \
--cc=agordeev@linux.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=andreyknvl@gmail.com \
--cc=arnd@arndb.de \
--cc=arnd@kernel.org \
--cc=borntraeger@linux.ibm.com \
--cc=dsterba@suse.com \
--cc=elver@google.com \
--cc=gor@linux.ibm.com \
--cc=jchrist@linux.ibm.com \
--cc=kasan-dev@googlegroups.com \
--cc=kees@kernel.org \
--cc=linux-hardening@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=nathan@kernel.org \
--cc=peterz@infradead.org \
--cc=ryabinin.a.a@gmail.com \
--cc=stefansf@linux.ibm.com \
--cc=svens@linux.ibm.com \
--cc=terrelln@fb.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.