Re: [PATCH RFC v3 02/21] ACPI: processor: Add support for processors described as container packages
"Rafael J. Wysocki" <[email protected]> Tue, 9 Jan 2024 17:05:15 +0100
| Newsgroups | org.kernel.vger.linux-ia64,dev.linux.lists.kvmarm,dev.linux.lists.loongarch,org.infradead.lists.linux-arm-kernel,org.infradead.lists.linux-riscv,org.kernel.vger.linux-acpi,org.kernel.vger.linux-arch,org.kernel.vger.linux-csky,org.kernel.vger.linux-doc,org.kernel.vger.linux-kernel,org.kernel.vger.linux-parisc,org.kernel.vger.linux-pm |
|---|---|
| Message-ID | <CAJZ5v0jvuTAMak-x=ekphwgNsUWABGRcDPb8D4QB=KhfyC76Sg@mail.gmail.com> |
On Tue, Jan 9, 2024 at 4:49=E2=80=AFPM Russell King (Oracle) <[email protected]> wrote: > > On Mon, Dec 18, 2023 at 09:17:34PM +0100, Rafael J. Wysocki wrote: > > On Wed, Dec 13, 2023 at 1:49=E2=80=AFPM Russell King <rmk+kernel@armlin= ux.org.uk> wrote: > > > > > > From: James Morse <[email protected]> > > > > > > ACPI has two ways of describing processors in the DSDT. From ACPI v6.= 5, > > > 5.2.12: > > > > > > "Starting with ACPI Specification 6.3, the use of the Processor() obj= ect > > > was deprecated. Only legacy systems should continue with this usage. = On > > > the Itanium architecture only, a _UID is provided for the Processor() > > > that is a string object. This usage of _UID is also deprecated since = it > > > can preclude an OSPM from being able to match a processor to a > > > non-enumerable device, such as those defined in the MADT. From ACPI > > > Specification 6.3 onward, all processor objects for all architectures > > > except Itanium must now use Device() objects with an _HID of ACPI0007= , > > > and use only integer _UID values." > > > > > > Also see https://uefi.org/specs/ACPI/6.5/08_Processor_Configuration_a= nd_Control.html#declaring-processors > > > > > > Duplicate descriptions are not allowed, the ACPI processor driver alr= eady > > > parses the UID from both devices and containers. acpi_processor_get_i= nfo() > > > returns an error if the UID exists twice in the DSDT. > > > > I'm not really sure how the above is related to the actual patch. > > > > > The missing probe for CPUs described as packages > > > > It is unclear what exactly is meant by "CPUs described as packages". > > > > From the patch, it looks like those would be Processor() objects > > defined under a processor container device. > > > > > creates a problem for > > > moving the cpu_register() calls into the acpi_processor driver, as CP= Us > > > described like this don't get registered, leading to errors from othe= r > > > subsystems when they try to add new sysfs entries to the CPU node. > > > (e.g. topology_sysfs_init()'s use of topology_add_dev() via cpuhp) > > > > > > To fix this, parse the processor container and call acpi_processor_ad= d() > > > for each processor that is discovered like this. > > > > Discovered like what? > > > > > The processor container > > > handler is added with acpi_scan_add_handler(), so no detach call will > > > arrive. > > > > The above requires clarification too. > > The above comments... yea. As I didn't write the commit description, but > James did, and James has basically vanished, I don't think these can be > answered, short of rewriting the entire commit message, with me spending > a lot of time with the ACPI specification trying to get the terminology > right - because at lot of the above on the face of it seems to be things > to do with wrong terminology being used. > > I wasn't expecting this level of issues with this patch set, and I now > feel completely out of my depth with this series. I'm wondering whether > I should even continue with it, since I don't have the ACPI knowledge > to address a lot of these comments. Well, sorry about this. I met James at the LPC last year, so he seems to be still around, in some way at least..