ideas for _PSD/_CSD/_TSD

Andriy Gapon avg at freebsd.org
Thu Nov 18 19:09:20 UTC 2010


I am trying to solicit some architectural/design ideas for implementing logic that
would honor ACPI _PSD/_CSD/_TSD descriptions of processor dependency domains.
Well, I am primarily interested in _PSD, but I think that some general principles
could be shared.

In simple terms.
Currently we do only the "global" P-state management.  cpufreq advertises a common
set of frequencies/P-states and a single P-state/frequency is set on all (logical)
processors by e.g. powerd based on global system load.
The downsides are obvious, I think.

Modern systems can provide _PSD method which describes grouping of logical
processors into P-state domains and nature of dependency between the processors in
the domain.  E.g. on some systems putting a single processor from the domain into
a Px state results in all the processors being put into that state.  On other
systems, all processors have to be put into the same state for it to become
effective.  On yet other systems there could be no coordination required between
the processors (even when they are all cores in the same package), so each would
be placed in its own domain.

I think that this issue may get more prominence because of the new technologies
that combine power saving with "turbo boosting".  E.g. there could be a technology
where some processor's performance would only be boosted if other processors are
at or above some state Pt.  With current cpufreq design we would not be able to
take an advantage of that, because we always put all the processors into the same
state.

Thanks!
-- 
Andriy Gapon


More information about the freebsd-current mailing list