From: Thomas Gleixner <tglx@kernel.org>
To: Shashank Balaji <shashank.mahadasyam@sony.com>,
Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
Dave Hansen <dave.hansen@linux.intel.com>,
x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
Suresh Siddha <suresh.b.siddha@intel.com>
Cc: Ingo Molnar <mingo@elte.hu>,
linux-kernel@vger.kernel.org, Jan Kiszka <jan.kiszka@siemens.com>,
Sohil Mehta <sohil.mehta@intel.com>,
Andrew Cooper <andrew.cooper3@citrix.com>,
Shashank Balaji <shashank.mahadasyam@sony.com>,
Rahul Bukte <rahul.bukte@sony.com>,
Daniel Palmer <daniel.palmer@sony.com>,
Tim Bird <tim.bird@sony.com>,
stable@vger.kernel.org
Subject: Re: [PATCH v2 1/2] x86/x2apic: Disable x2apic on resume if the kernel expects so
Date: Sun, 08 Mar 2026 10:21:53 +0100 [thread overview]
Message-ID: <87a4wi3ccu.ffs@tglx> (raw)
In-Reply-To: <20260306-x2apic-fix-v2-1-bee99c12efa3@sony.com>
On Fri, Mar 06 2026 at 14:46, Shashank Balaji wrote:
> When resuming from s2ram, firmware may re-enable x2apic mode, which may have
> been disabled by the kernel during boot either because it doesn't support
> irq remapping or for other reasons. This causes the kernel to continue using
> the xapic interface, while the hardware is in x2apic mode, which causes hangs.
> This happens on defconfig + bare metal + s2ram.
>
> Fix this in lapic_resume() by disabling x2apic if the kernel expects it to be
> disabled, i.e. when x2apic_mode = 0.
>
> The ACPI v6.6 spec, Section 16.3 [1] says firmware restores either the pre-sleep
> configuration or initial boot configuration for each CPU, including MSR state:
>
> When executing from the power-on reset vector as a result of waking
> from an S2 or S3 sleep state, the platform firmware performs only the
> hardware initialization required to restore the system to either the
> state the platform was in prior to the initial operating system boot,
> or to the pre-sleep configuration state. In multiprocessor systems,
> non-boot processors should be placed in the same state as prior to the
> initial operating system boot.
>
> (further ahead)
>
> If this is an S2 or S3 wake, then the platform runtime firmware
> restores minimum context of the system before jumping to the waking
> vector. This includes:
>
> CPU configuration. Platform runtime firmware restores the
> pre-sleep configuration or initial boot configuration of each
> CPU (MSR, MTRR, firmware update, SMBase, and so on). Interrupts
> must be disabled (for IA-32 processors, disabled by CLI
> instruction).
>
> (and other things)
>
> So at least as per the spec, re-enablement of x2apic by the firmware is allowed
> if "x2apic on" is a part of the initial boot configuration.
>
> [1] https://uefi.org/specs/ACPI/6.6/16_Waking_and_Sleeping.html#initialization
>
> Fixes: 6e1cb38a2aef ("x64, x2apic/intr-remap: add x2apic support, including enabling interrupt-remapping")
> Cc: stable@vger.kernel.org
> Co-developed-by: Rahul Bukte <rahul.bukte@sony.com>
> Signed-off-by: Rahul Bukte <rahul.bukte@sony.com>
> Signed-off-by: Shashank Balaji <shashank.mahadasyam@sony.com>
Reviewed-by: Thomas Gleixner <tglx@kernel.org>
next prev parent reply other threads:[~2026-03-08 9:21 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-06 5:46 [PATCH v2 0/2] x86/x2apic: Fix hangup of defconfig kernel on resume from s2ram Shashank Balaji
2026-03-06 5:46 ` [PATCH v2 1/2] x86/x2apic: Disable x2apic on resume if the kernel expects so Shashank Balaji
2026-03-08 9:21 ` Thomas Gleixner [this message]
2026-03-09 0:59 ` Sohil Mehta
2026-03-10 11:30 ` [tip: x86/urgent] x86/apic: " tip-bot2 for Shashank Balaji
2026-03-06 5:46 ` [PATCH v2 2/2] x86/defconfig: Add CONFIG_IRQ_REMAP Shashank Balaji
2026-03-08 9:22 ` Thomas Gleixner
2026-03-09 1:01 ` Sohil Mehta
2026-03-10 18:10 ` [tip: x86/misc] x86/64/defconfig: " tip-bot2 for Shashank Balaji
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=87a4wi3ccu.ffs@tglx \
--to=tglx@kernel.org \
--cc=andrew.cooper3@citrix.com \
--cc=bp@alien8.de \
--cc=daniel.palmer@sony.com \
--cc=dave.hansen@linux.intel.com \
--cc=hpa@zytor.com \
--cc=jan.kiszka@siemens.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=mingo@redhat.com \
--cc=rahul.bukte@sony.com \
--cc=shashank.mahadasyam@sony.com \
--cc=sohil.mehta@intel.com \
--cc=stable@vger.kernel.org \
--cc=suresh.b.siddha@intel.com \
--cc=tim.bird@sony.com \
--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.