[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250407132445.6732-1-arkamar@atlas.cz>
Date: Mon, 7 Apr 2025 15:24:26 +0200
From: Petr Vaněk <arkamar@...as.cz>
To: Thomas Gleixner <tglx@...utronix.de>
Cc: Andrew Cooper <andrew.cooper3@...rix.com>,
arkamar@...as.cz,
Juergen Gross <jgross@...e.com>,
linux-kernel@...r.kernel.org,
stable@...r.kernel.org,
x86@...nel.org,
xen-devel@...ts.xenproject.org,
linux-acpi@...r.kernel.org
Subject: Re: [PATCH 1/1] x86/cpu/topology: Don't limit CPUs to 1 for Xen PV guests due to disabled APIC
On Sun, Apr 06, 2025 at 12:08:29PM +0200, Thomas Gleixner wrote:
> On Sat, Apr 05 2025 at 20:16, Petr Vaněk wrote:
>
> > Xen PV guests in DomU have APIC disabled by design, which causes
> > topology_apply_cmdline_limits_early() to limit the number of possible
> > CPUs to 1, regardless of the configured number of vCPUs.
>
> PV guests have a APIC emulation and there is no code which actually
> disables the APIC by design unconditionally. There is one way though,
> which disables the APIC indirectly.
It seems I have got a bit lost in APIC/ACPI abbreviations. Sorry.
> xen_arch_setup() disables ACPI, which in turn causes acpi_mps_check() to
> return 1, which disables the APIC. This only happens when the kernel
> configuration has:
>
> CONFIG_X86_MPPARSE=n
> CONFIG_ACPI=y
>
> If you enable MPPARSE the problem goes away, no?
Yes, it goes away.
> > + /* 'maxcpus=0' 'nosmp' 'nolapic'
> > + *
> > + * The apic_is_disabled check is ignored for Xen PV domains because Xen
> > + * disables ACPI in unprivileged PV DomU guests, which would otherwise limit
> > + * CPUs to 1, even if multiple vCPUs were configured.
>
> This is the wrong place as it invalidates the effect of 'nolapic' on the
> kernel command line for XEN PV.
>
> You actually explain in the comment that XEN disables ACPI, so why are
> you slapping this xen check into this code instead of doing the obvious
> and prevent acpi_mps_check() to cause havoc?
Thank you for your explanation and suggestion. I will correct acpi_mps_check()
in following patch.
Thanks,
Petr
Powered by blists - more mailing lists