public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@kernel.org>
To: Uros Bizjak <ubizjak@gmail.com>
Cc: Matt Fleming <matt@readmodwrite.com>,
	Jakub Jelinek <jakub@redhat.com>,
	linux-kernel@vger.kernel.org, kernel-team@cloudflare.com
Subject: Re: CONFIG_KASAN triggers ASAN bug in GCC 13.3.0 and 14.1.0
Date: Thu, 27 Feb 2025 19:27:35 +0100	[thread overview]
Message-ID: <Z8Cul8cbnYTFzMoK@gmail.com> (raw)
In-Reply-To: <CAFULd4YsMAqqVApUdtib-n6JuaFzyOXmi3fBuUNKdnnNKK=iig@mail.gmail.com>


* Uros Bizjak <ubizjak@gmail.com> wrote:

> On Thu, Feb 27, 2025 at 1:46 PM Ingo Molnar <mingo@kernel.org> wrote:
> >
> >
> > * Uros Bizjak <ubizjak@gmail.com> wrote:
> >
> > > On Thu, Feb 27, 2025 at 1:22 PM Ingo Molnar <mingo@kernel.org> wrote:
> > > >
> > > >
> > > > * Uros Bizjak <ubizjak@gmail.com> wrote:
> > > >
> > > > > On Mon, Dec 16, 2024 at 5:20 PM Matt Fleming <matt@readmodwrite.com> wrote:
> > > > > >
> > > > > > On Sat, Dec 14, 2024 at 1:17 AM Uros Bizjak <ubizjak@gmail.com> wrote:
> > > > > > >
> > > > > > > Does your config include CONFIG_UBSAN_BOOL=y ?
> > > > > >
> > > > > > Yes, it does!
> > > > > >
> > > > > > > There is a rare interaction between CONFIG_KASAN and CONFIG_UBSAN_BOOL
> > > > > > > (aka -fsanitize=bool), reported in [1] and fixed for gcc-14.2 in [2].
> > > > > > >
> > > > > > > [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111736#c42
> > > > > > >
> > > > > > > [2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115172
> > > > > > >
> > > > > > > Otherwise, please attach your .config, and I'll look into this issue.
> > > > > >
> > > > > > Thanks. Disabling CONFIG_UBSAN_BOOL does indeed make the kernels boot again.
> > > > > >
> > > > > > Should CONFIG_UBSAN_BOOL have a dependency on GCC 14.4+ ?
> > > > >
> > > > > No, this is a very rare Oops that triggers only with gcc-14.1 version
> > > > > and only when both KASAN and UBSAN are enabled. This is actually the
> > > > > problem with sanitization of the percpu address when named address
> > > > > spaces are enabled (IOW, sanitization of __seg_gs prefixed address).
> > > > > UBSAN creates a temporary in memory, but forgets to copy memory tags,
> > > > > including named address space qualifier from the original. Later ASAN
> > > > > sanitizes this location as a normal variable (due to missing
> > > > > qualifier), but actually should be disabled for __seg_gs prefixed
> > > > > addresses.
> > > > >
> > > > > Your report is only *the second* since sanitizers were re-enabled with
> > > > > named address spaces. gcc-14.2 that includes the fix is available
> > > > > since August 2024, and since sanitizers are strictly development
> > > > > tools, my proposed solution would be to simply upgrade the compiler to
> > > > > gcc-14.2 release.
> > > >
> > > > So unless this is difficult to test for, it would be nice to have a
> > > > compiler version cutoff for the feature. Especially if it's been
> > > > reported twice already, chances are that a lot more people have
> > > > experienced it already.
> > > >
> > > > The kernel build should avoid this known oops automatically.
> > >
> > > The patch could be as simple as:
> > >
> > > --cut here--
> > > diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
> > > index 95ea2b4b95db..c94c37889917 100644
> > > --- a/arch/x86/Kconfig
> > > +++ b/arch/x86/Kconfig
> > > @@ -2370,7 +2370,7 @@ config CC_HAS_NAMED_AS
> > >      depends on CC_IS_GCC
> > >
> > >  config CC_HAS_NAMED_AS_FIXED_SANITIZERS
> > > -    def_bool CC_IS_GCC && GCC_VERSION >= 130300
> > > +    def_bool CC_IS_GCC && GCC_VERSION >= 140200
> > >
> > >  config USE_X86_SEG_SUPPORT
> > >      def_bool y
> > > --cut here--
> > >
> > > but it will disable all sanitizers for a very rare Oops that needs the
> > > combination of CONFIG_KASAN and CONFIG_UBSAN_BOOL.
> >
> > Can we not limit the version quirk to KASAN && UBSAN_BOOL?
> 
> I am testing the attached patch that resolves the issue.

Thank you!

	Ingo

      reply	other threads:[~2025-02-27 18:27 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-13 19:01 CONFIG_KASAN triggers ASAN bug in GCC 13.3.0 and 14.1.0 Matt Fleming
2024-12-14  1:17 ` Uros Bizjak
2024-12-16 16:20   ` Matt Fleming
2024-12-16 16:56     ` Uros Bizjak
2025-02-27 12:22       ` Ingo Molnar
2025-02-27 12:30         ` Uros Bizjak
2025-02-27 12:46           ` Ingo Molnar
2025-02-27 13:35             ` Uros Bizjak
2025-02-27 18:27               ` Ingo Molnar [this message]

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=Z8Cul8cbnYTFzMoK@gmail.com \
    --to=mingo@kernel.org \
    --cc=jakub@redhat.com \
    --cc=kernel-team@cloudflare.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=matt@readmodwrite.com \
    --cc=ubizjak@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox