All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paul Gortmaker <paul.gortmaker@windriver.com>
To: Peter Zijlstra <peterz@infradead.org>, Borislav Petkov <bp@alien8.de>
Cc: Richard Purdie <richard.purdie@linuxfoundation.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	x86@kernel.org, linux-kernel@vger.kernel.org
Subject: 32 bit qemu regression from v6.5 tip pull [6c480f222128 x86/alternative: Rewrite optimize_nops() some]
Date: Sun, 29 Oct 2023 14:41:46 -0400	[thread overview]
Message-ID: <ZT6narvE+LxX+7Be@windriver.com> (raw)

The TL;DR is that the Yocto folks encountered a regression in their
automated QA tests (after a move from v6.4 --> v6.5) where non-KVM
enabled boot tests on 32 bit x86 would (with ~2% frequency) splat with:

[0.326235] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
[0.326556] x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]:  256
[0.326965] x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'standard' format.
[0.331789] __common_interrupt: 0.167 No irq handler for vector
[0.331789] __common_interrupt: 0.112 No irq handler for vector
[0.331789] iret exception: 0000 [#1] PREEMPT SMP
[0.331789] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 6.5.7-yocto-standard #1
[0.331789] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.16.2-0-gea1b7a073390-prebuilt.qemu.org 04/01/2014
[0.331789] EIP: 0x60
[0.331789] Code: Unable to access opcode bytes at 0x36.

..or similar - common theme being FPU init and __common_interrupt.

The 2% reproducibility was a problem, so the Yocto folks asked me to
take a look, and keeping with the TL;DR I managed to bisect it to the
tip merge of alternates, and then in turn to the commit within:

6c480f222128 x86/alternative: Rewrite optimize_nops() some

That failed six times in 381 qemu boots.  I've run the commit below it,
14e4ec9c3e91 close to 1500 times (still going) without a fail - since as
we all know at 2%, that bad is bad but good is only statistically proven.

I'm not quite sure where to go next.  Has been nearly 20 years since
I've had to juggle NOP counts for some IMHO broken MIPS pipeline.  So I
figured I best report it at this point.

I've put a bunch of details in the bugzilla of the Yocto folks here:

https://bugzilla.yoctoproject.org/show_bug.cgi?id=15230

Skip ahead to comment 11 and you'll avoid me chasing FPU changes like
tglx's FPU init relocation commits, only to go nowhere.

I've kept kernel build dirs, boot logs, etc for all the commits I've
touched down into for testing, so I can revisit and re-test easily.

Paul.

             reply	other threads:[~2023-10-29 18:42 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-29 18:41 Paul Gortmaker [this message]
2023-10-30  8:26 ` 32 bit qemu regression from v6.5 tip pull [6c480f222128 x86/alternative: Rewrite optimize_nops() some] Peter Zijlstra
2023-10-30 10:55   ` Richard Purdie
2023-10-30 11:44     ` Peter Zijlstra
2023-10-30 15:28       ` Paul Gortmaker
2023-10-30 18:24         ` Thomas Gleixner
2023-10-30 19:30           ` Thomas Gleixner
2023-10-31 15:40             ` Paul Gortmaker
2023-11-11 11:51               ` Linux regression tracking (Thorsten Leemhuis)
2023-11-22 14:11                 ` Richard Purdie
2023-11-29  8:57                 ` Thomas Gleixner
2023-12-06 15:46                   ` Paul Gortmaker
2023-12-07 16:34                     ` Thomas Gleixner
2023-12-07 16:52                       ` Paul Gortmaker
2023-12-07 19:49                   ` [patch 0/2] x86/alternatives: Prevent crash in NOP optimizer Thomas Gleixner
2023-12-07 19:49                     ` [patch 1/2] x86/alternatives: Sync core before enabling interrupts Thomas Gleixner
2023-12-07 19:49                     ` [patch 2/2] x86/alternatives: Disable interrupts and sync when optimizing NOPs in place Thomas Gleixner
2023-12-08 13:22                       ` Borislav Petkov
2023-12-08 13:37                         ` Thomas Gleixner
2023-12-08  8:35                     ` [patch 0/2] x86/alternatives: Prevent crash in NOP optimizer Paul Gortmaker
2023-12-15  9:10                     ` Peter Zijlstra

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=ZT6narvE+LxX+7Be@windriver.com \
    --to=paul.gortmaker@windriver.com \
    --cc=bp@alien8.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=peterz@infradead.org \
    --cc=richard.purdie@linuxfoundation.org \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    /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.