Re: [PATCH 1/3] acpi/processor: fix evaluating _PDC method when running as Xen dom0
From: Roger Pau Monné
Date: Mon Nov 21 2022 - 09:31:19 EST
On Mon, Nov 21, 2022 at 03:02:30PM +0100, Jan Beulich wrote:
> On 21.11.2022 11:21, Roger Pau Monne wrote:
> > @@ -47,6 +49,15 @@ static bool __init processor_physically_present(acpi_handle handle)
> > return false;
> > }
> >
> > + if (xen_initial_domain())
> > + /*
> > + * When running as a Xen dom0 the number of processors Linux
> > + * sees can be different from the real number of processors on
> > + * the system, and we still need to execute _PDC for all of
> > + * them.
> > + */
> > + return xen_processor_present(acpi_id);
> > +
> > type = (acpi_type == ACPI_TYPE_DEVICE) ? 1 : 0;
> > cpuid = acpi_get_cpuid(handle, type, acpi_id);
>
> We had to deal with this in our XenoLinux forward ports as well, but at
> the time it appeared upstream I decided to make use of acpi_get_apicid()
> (which meanwhile was renamed to acpi_get_phys_id()). Wouldn't than be an
> option, eliminating the need for a Xen-specific new function?
While this would work for PV, it won't work on a PVH dom0, since the
ACPI MADT table is not the native one in that case, and thus the
Processor UIDs in the MADT don't match the ones in the Processor
objects/devices.
Thanks, Roger.