The NetBSD Project

CVS log for src/sys/dev/acpi/acpi_cpu_tstate.c

[BACK] Up to [cvs.NetBSD.org] / src / sys / dev / acpi

Request diff between arbitrary revisions


Default branch: MAIN
Current tag: MAIN


Revision 1.31 / (download) - annotate - [select for diffs], Fri Apr 27 04:38:24 2012 UTC (12 months, 3 weeks ago) by jruoho
Branch: MAIN
CVS Tags: yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, yamt-pagecache-base5, tls-maxphys-nbase, tls-maxphys-base, tls-maxphys, khorben-n900, jmcneill-usbmp-base9, jmcneill-usbmp-base10, agc-symver-base, agc-symver, HEAD
Changes since 1.30: +2 -10 lines
Diff to previous 1.30 (colored)

Remove the upper limit for the number of T-states.

Revision 1.30 / (download) - annotate - [select for diffs], Wed Jun 22 08:49:54 2011 UTC (23 months ago) by jruoho
Branch: MAIN
CVS Tags: yamt-pagecache-base4, yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, netbsd-6-base, netbsd-6-1-RELEASE, netbsd-6-1-RC4, netbsd-6-1-RC3, netbsd-6-1-RC2, netbsd-6-1-RC1, netbsd-6-1, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, netbsd-6-0-2-RELEASE, netbsd-6-0-1-RELEASE, netbsd-6-0, netbsd-6, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus, jmcneill-usbmp-pre-base2, jmcneill-usbmp-base8, jmcneill-usbmp-base7, jmcneill-usbmp-base6, jmcneill-usbmp-base5, jmcneill-usbmp-base4, jmcneill-usbmp-base3, jmcneill-usbmp-base2, jmcneill-usbmp-base, jmcneill-audiomp3-base, jmcneill-audiomp3
Branch point for: yamt-pagecache, jmcneill-usbmp
Changes since 1.29: +4 -6 lines
Diff to previous 1.29 (colored)

Get rid of RUN_ONCE(9). Should fix PR # kern/44043.

Revision 1.29 / (download) - annotate - [select for diffs], Wed Jun 22 08:05:10 2011 UTC (23 months ago) by jruoho
Branch: MAIN
Changes since 1.28: +6 -5 lines
Diff to previous 1.28 (colored)

Contrary to the previous, use aprint_error(9) but suppress warnings
caused by the (optional) BIOS-based dynamic voltage and frequency scaling.

Revision 1.28 / (download) - annotate - [select for diffs], Sat Jun 4 18:03:10 2011 UTC (23 months, 2 weeks ago) by jruoho
Branch: MAIN
CVS Tags: rmind-uvmplock-nbase, rmind-uvmplock-base
Changes since 1.27: +4 -4 lines
Diff to previous 1.27 (colored)

Change some printfs to aprint_debug(9).

Revision 1.27 / (download) - annotate - [select for diffs], Sat Mar 19 12:57:31 2011 UTC (2 years, 2 months ago) by jruoho
Branch: MAIN
CVS Tags: cherry-xenmp-base
Branch point for: cherry-xenmp
Changes since 1.26: +11 -11 lines
Diff to previous 1.26 (colored)

Like in rest of the acpi(4) stack, queue all resume hooks.

Revision 1.26 / (download) - annotate - [select for diffs], Tue Mar 1 05:57:04 2011 UTC (2 years, 2 months ago) by jruoho
Branch: MAIN
CVS Tags: bouyer-quota2-nbase
Branch point for: rmind-uvmplock
Changes since 1.25: +2 -43 lines
Diff to previous 1.25 (colored)

Move also the evcnt(9) event counters to one place. No functional change.

Revision 1.25 / (download) - annotate - [select for diffs], Tue Mar 1 05:32:03 2011 UTC (2 years, 2 months ago) by jruoho
Branch: MAIN
Changes since 1.24: +2 -33 lines
Diff to previous 1.24 (colored)

Simplify by moving the debug printfs to one place. No functional change.

Revision 1.24 / (download) - annotate - [select for diffs], Tue Mar 1 04:35:48 2011 UTC (2 years, 2 months ago) by jruoho
Branch: MAIN
Changes since 1.23: +41 -14 lines
Diff to previous 1.23 (colored)

Move the xcall(9) that does the P- and T-state transformations from the MD
layer to the main code. Makes the caches coherent and provides consistent
vmstat(1) output. This is still not quite right, given that most of the
cross-calls are typically unnecessary with the dependency coordination.

Revision 1.23 / (download) - annotate - [select for diffs], Fri Feb 25 19:55:07 2011 UTC (2 years, 2 months ago) by jruoho
Branch: MAIN
Changes since 1.22: +100 -2 lines
Diff to previous 1.22 (colored)

Start to derive the percpu(9) (or per-domain) state coordination
mechanisms by parsing the _CSD, _PSD, and _TSD objects by default.

Revision 1.22 / (download) - annotate - [select for diffs], Fri Feb 25 05:07:43 2011 UTC (2 years, 2 months ago) by jruoho
Branch: MAIN
Changes since 1.21: +10 -4 lines
Diff to previous 1.21 (colored)

Clarify a comment.

Revision 1.21 / (download) - annotate - [select for diffs], Wed Feb 23 06:17:55 2011 UTC (2 years, 3 months ago) by jruoho
Branch: MAIN
Changes since 1.20: +3 -3 lines
Diff to previous 1.20 (colored)

Lower the worst-case latency in P- and T-state transitions to 1 usec.
The previous 10 usec was based on the Intel's Core family. It may have been
improved since that. Also provide an arbitrary upper bound for BIOS bugs.

Revision 1.20 / (download) - annotate - [select for diffs], Fri Feb 18 07:00:05 2011 UTC (2 years, 3 months ago) by jruoho
Branch: MAIN
Changes since 1.19: +2 -11 lines
Diff to previous 1.19 (colored)

Remove the (debug) check that evaluated whether the first T-state (i.e. the
100 % duty cycle) had control value of zero, as in the IA32 clock modulation
MSR. As the access may be based on I/O, it is unclear if a strict validation
like this was correct. Should fix the problem reported by Hisashi T Fujinaka
on current users.

Revision 1.19 / (download) - annotate - [select for diffs], Sun Jan 30 08:55:52 2011 UTC (2 years, 3 months ago) by jruoho
Branch: MAIN
CVS Tags: bouyer-quota2-base
Changes since 1.18: +3 -3 lines
Diff to previous 1.18 (colored)

Improve error reporting.

Revision 1.18 / (download) - annotate - [select for diffs], Thu Dec 30 12:05:02 2010 UTC (2 years, 4 months ago) by jruoho
Branch: MAIN
CVS Tags: matt-mips64-premerge-20101231, jruoho-x86intr-base
Branch point for: jruoho-x86intr, bouyer-quota2
Changes since 1.17: +2 -5 lines
Diff to previous 1.17 (colored)

Change the default behavior to enforce the maximum frequency when the
firmware requests to do so. This cures severe overhating (> 120 C) observed
on many laptops, being also on par with the specification(s). This can be
reverted by using the new "hw.acpi.cpu.dynamic" sysctl variable.

Revision 1.17 / (download) - annotate - [select for diffs], Mon Dec 20 08:13:04 2010 UTC (2 years, 5 months ago) by jruoho
Branch: MAIN
Changes since 1.16: +10 -10 lines
Diff to previous 1.16 (colored)

Use branch annotations in couple of places. Add two comments.

Revision 1.16 / (download) - annotate - [select for diffs], Sat Aug 21 18:25:45 2010 UTC (2 years, 9 months ago) by jruoho
Branch: MAIN
CVS Tags: yamt-nfs-mp-base11, uebayasi-xip-base4, uebayasi-xip-base3
Branch point for: yamt-nfs-mp
Changes since 1.15: +2 -11 lines
Diff to previous 1.15 (colored)

After discussion with jakllsch@ and jmcneill@, revert the previous and only
do the status-check when the comparison value reported by BIOS is not zero.
The uncertainty noted in the previous commit still applies. But if we ever
see a timeout again, it will likely be either a firmware bug or a special
case like the Intel Turbo Boost.

Revision 1.15 / (download) - annotate - [select for diffs], Fri Aug 20 04:16:00 2010 UTC (2 years, 9 months ago) by jruoho
Branch: MAIN
Changes since 1.14: +7 -2 lines
Diff to previous 1.14 (colored)

Check the cached value also when setting a state.

Revision 1.14 / (download) - annotate - [select for diffs], Tue Aug 17 10:57:30 2010 UTC (2 years, 9 months ago) by jruoho
Branch: MAIN
Changes since 1.13: +4 -2 lines
Diff to previous 1.13 (colored)

Adjust locking for previous.

Revision 1.13 / (download) - annotate - [select for diffs], Tue Aug 17 10:35:22 2010 UTC (2 years, 9 months ago) by jruoho
Branch: MAIN
Changes since 1.12: +16 -11 lines
Diff to previous 1.12 (colored)

Clarify the initialization of the dynamic maximums/minimums. Reset these to
defaults upon suspend. As we do not know how well the firmware maintains
state, do not run the callbacks that evaluate the maximum/minimum on resume.

Revision 1.12 / (download) - annotate - [select for diffs], Tue Aug 17 10:17:52 2010 UTC (2 years, 9 months ago) by jruoho
Branch: MAIN
Changes since 1.11: +16 -7 lines
Diff to previous 1.11 (colored)

Add support for the optional dynamic minimum (in terms of MHz) via _PDL.
Comparable to T-states, this gives effectively a window of available
performance states for passive cooling. An example:

Init:		max = 0, min = Pn.

		Time j.				Time j + 1.
		-----------			-----------
2000 MHz	P0	max			P0
		P1				P1	max
		P2		   ==>		P2
		P3				P3	min
		P4				P4
		P5	min			P5
 500 Mhz	Pn				Pn
		-----------			-----------

Search:		repeat (i = P0; i <= P5)	repeat (i = P1; i <= P3)

Revision 1.11 / (download) - annotate - [select for diffs], Mon Aug 16 17:58:42 2010 UTC (2 years, 9 months ago) by jruoho
Branch: MAIN
Branch point for: uebayasi-xip
Changes since 1.10: +4 -5 lines
Diff to previous 1.10 (colored)

Now that the deferred configuration actually works as expected and documented,
use config_defer(9) instead of config_finalize_register(9), and simplify the
code paths around the initialization.

Revision 1.10 / (download) - annotate - [select for diffs], Mon Aug 16 04:31:21 2010 UTC (2 years, 9 months ago) by jruoho
Branch: MAIN
CVS Tags: uebayasi-xip-base2
Changes since 1.9: +8 -12 lines
Diff to previous 1.9 (colored)

Do not error out neither in P-states nor in T-states if the method for the
dynamic maximum is nonexistent. Unsurprisingly, there is vagueness in the
standards; in ACPI 3.0 and 4.0 it is clearly indicated that also these methods
must be present, but the earlier standards are less stringent. Without too
much effort, at least one old P4-system was located that lacks _PPC.

Revision 1.9 / (download) - annotate - [select for diffs], Sun Aug 15 08:53:19 2010 UTC (2 years, 9 months ago) by jruoho
Branch: MAIN
Changes since 1.8: +10 -3 lines
Diff to previous 1.8 (colored)

Add comments and raise the minimum allowed T-state duty cycle to 10 %.

Revision 1.8 / (download) - annotate - [select for diffs], Sun Aug 15 04:35:16 2010 UTC (2 years, 9 months ago) by jruoho
Branch: MAIN
Changes since 1.7: +12 -6 lines
Diff to previous 1.7 (colored)

Properly deal with the previous FADT-issue.

Revision 1.7 / (download) - annotate - [select for diffs], Sat Aug 14 17:50:57 2010 UTC (2 years, 9 months ago) by jruoho
Branch: MAIN
Changes since 1.6: +5 -17 lines
Diff to previous 1.6 (colored)

Simplify the FADT-based entry by "faking" (overriding) also the address.

Revision 1.6 / (download) - annotate - [select for diffs], Sat Aug 14 05:41:22 2010 UTC (2 years, 9 months ago) by jruoho
Branch: MAIN
Changes since 1.5: +4 -4 lines
Diff to previous 1.5 (colored)

Do not queue functions via sysmon_taskq(9) in the pmf(9) resume hooks.
There is a small and unlikely race when the drivers are loaded as modules;
suspend, resume, queue a function, and immediately unload the module.

Revision 1.5 / (download) - annotate - [select for diffs], Sat Aug 14 05:13:21 2010 UTC (2 years, 9 months ago) by jruoho
Branch: MAIN
Changes since 1.4: +8 -2 lines
Diff to previous 1.4 (colored)

Move the PIIX4-quirk to the MD file and disable T-states for PIIX4.

Revision 1.4 / (download) - annotate - [select for diffs], Fri Aug 13 19:51:54 2010 UTC (2 years, 9 months ago) by jruoho
Branch: MAIN
Changes since 1.3: +3 -2 lines
Diff to previous 1.3 (colored)

Explicitly include <sys/evcnt.h>.

Revision 1.3 / (download) - annotate - [select for diffs], Fri Aug 13 19:48:25 2010 UTC (2 years, 9 months ago) by jruoho
Branch: MAIN
Changes since 1.2: +2 -5 lines
Diff to previous 1.2 (colored)

Instead of packing structures that do not need to be __packed, remove two
CTASSERT(9) macros.  Fixes build failure on AMD64 noted by cegger@.

Revision 1.2 / (download) - annotate - [select for diffs], Fri Aug 13 18:44:24 2010 UTC (2 years, 9 months ago) by jruoho
Branch: MAIN
Changes since 1.1: +3 -8 lines
Diff to previous 1.1 (colored)

Remove some unnecessary locking. Mainly a leftover from previous revisions
where the dynamic maximum/minimum was used also when retrieving the current
state. The state-array itself changes only in C-states.

Revision 1.1 / (download) - annotate - [select for diffs], Fri Aug 13 16:21:50 2010 UTC (2 years, 9 months ago) by jruoho
Branch: MAIN

Merge T-state a.k.a. throttling support for acpicpu(4).

Remarks:

  1.    Native instructions are supported only on Intel. Native support for
        other x86 vendors will be investigated. By assumption, AMD and others
        use the I/O based approach.

  2.    The existing code, INTEL_ONDEMAND_CLOCKMOD, must be disabled in
        order to use acpicpu(4). Otherwise fatal MSR races may occur.
        Unlike with P-states, no attempt is done to disable the existing
        implementation.

  3.    There is no rationale to export controls to user land.

  4.    Throttling is an artefact from the past. T-states will not be used for
        power management per se. For CPU frequency management, P-states are
        preferred in all circumstances. No noticeable additional power savings
        were observed in various experiments. When the system has been scaled
        to the highest (i.e. lowest power) P-state, it is preferable to move
        from C0 to deeper C-states than it is to actively throttle the CPU.

  5.    But T-states need to be implemented for passive cooling via acpitz(4).
        As specified by ACPI and Intel documents, these can be used as the
        last line of defence against critical thermal conditions. Support
        for this will be added later.

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




CVSweb <webmaster@jp.NetBSD.org>