Page MenuHomeFreeBSD

Implement ACPI CPU support when Processor object is not present
ClosedPublic

Authored by cem on Dec 12 2017, 12:25 AM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Jan 19, 7:45 PM
Unknown Object (File)
Sun, Dec 29, 8:18 AM
Unknown Object (File)
Dec 7 2024, 5:56 PM
Unknown Object (File)
Nov 23 2024, 6:06 AM
Unknown Object (File)
Oct 29 2024, 11:32 AM
Unknown Object (File)
Sep 13 2024, 3:14 PM
Unknown Object (File)
Sep 5 2024, 1:04 AM
Unknown Object (File)
Sep 4 2024, 9:32 AM
Subscribers

Details

Summary

By 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

Right now FreeBSD driver only supports the former, while AMD Epyc/Poweredge so
far both implement the latter. 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.

Submitted by: Attilio

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Looks ok to me, but I'm relatively unfamiliar with this code and with ACPI in general.

This revision is now accepted and ready to land.Dec 12 2017, 2:50 PM
rang_acm.org added a subscriber: rang_acm.org.

Looks correct to me per the spec.

@jhb , @jkim : Any objection? Are you planning on reviewing in the next few days, or should I go ahead and commit this?

This looks good to me. As far as the commit log, ACPI 6.0 formally deprecates the Processor keyword, so eventually processors will only be enumerated as Device() objects.

This revision was automatically updated to reflect the committed changes.