Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: src/sys



Module Name:    src
Committed By:   jruoho
Date:           Sun Jul 18 09:29:13 UTC 2010

Modified Files:
        src/sys/arch/amd64/conf: GENERIC
        src/sys/arch/i386/conf: GENERIC
        src/sys/arch/x86/conf: files.x86
        src/sys/arch/x86/include: machdep.h
        src/sys/arch/x86/x86: x86_machdep.c
        src/sys/dev/acpi: acpi.c files.acpi
Added Files:
        src/sys/arch/x86/acpi: acpi_cpu_md.c
        src/sys/dev/acpi: acpi_cpu.c acpi_cpu.h acpi_cpu_cstate.c

Log Message:
Merge a driver for ACPI CPUs with basic support for processor power states,
also known as C-states. The code is modular and provides an easy way to add
the remaining functionality later (namely throttling and P-states).

Remarks:

  1.    Commented out in the GENERICs; more testing exposure is needed.

  2.    The C3-state is disabled for the time being because it turns off
        timers, among them the local APIC timer. This may not be universally
        true on all x86 processors; define ACPICPU_ENABLE_C3 to test.

  3.    The algorithm used to choose a power state may need tuning. When
        evaluating the appropriate state, the implementation uses the
        previous sleep time as an indicator. Additional hints would include
        for example the system load.

        Also bus master activity is evaluated when choosing a state. The
        usb(4) stack is notorious for such activity even when unused.
        Typically it must be disabled in order to reach the C3-state,
        but it may also prevent the use of C2.

  4.    While no extensive empirical measurements have been carried out, the
        power savings are somewhere between 1-2 W with C1 and C2, depending
        on the processor, firmware, and load. With C3 even up to 4 W can be
        saved.  The less something ticks, the more power is saved.

ok jmcneill@, joerg@, and discussed with various people.


To generate a diff of this commit:
cvs rdiff -u -r1.281 -r1.282 src/sys/arch/amd64/conf/GENERIC
cvs rdiff -u -r1.986 -r1.987 src/sys/arch/i386/conf/GENERIC
cvs rdiff -u -r0 -r1.1 src/sys/arch/x86/acpi/acpi_cpu_md.c
cvs rdiff -u -r1.55 -r1.56 src/sys/arch/x86/conf/files.x86
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/x86/include/machdep.h
cvs rdiff -u -r1.41 -r1.42 src/sys/arch/x86/x86/x86_machdep.c
cvs rdiff -u -r1.206 -r1.207 src/sys/dev/acpi/acpi.c
cvs rdiff -u -r0 -r1.1 src/sys/dev/acpi/acpi_cpu.c \
    src/sys/dev/acpi/acpi_cpu.h src/sys/dev/acpi/acpi_cpu_cstate.c
cvs rdiff -u -r1.75 -r1.76 src/sys/dev/acpi/files.acpi

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



Home | Main Index | Thread Index | Old Index