HomeFreeBSD

Implement ACPI CPU support when Processor object is not present

Description

Implement ACPI CPU support when Processor object is not present

By the ACPI standard (ACPI 5 chapter 8.4 Declaring Processors) Processors
can be implemented in 2 distinct ways:

  • Through a Processor object type (which provides P_BLK)
  • Through a Device object type

Prior to this change, the FreeBSD driver only supported the former. AMD
Epyc / Poweredge systems we are testing both implement the latter only. Add
the missing support.

Because P_BLK is not defined in the device object case, C-states entering
must be completely controlled via _CST methods rather than P_LVL2/3.

John Baldwin points out that ACPI 6.0 formally deprecates the Processor
keyword, so eventually processors will only be enumerated as Device objects.

Submitted by: attilio
Reviewed by: jhb, markj, Anton Rang <rang AT acm.org>
Relnotes: maybe
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D13457

Details

Provenance
cemAuthored on
Reviewer
jhb
Differential Revision
D13457: Implement ACPI CPU support when Processor object is not present
Parents
rS326955: Revert revision 326923
Branches
Unknown
Tags
Unknown