特殊:Badtitle/NS100:LongRunHowTo

来自Ubuntu中文
Wikibot留言 | 贡献2007年12月6日 (四) 10:41的版本
跳到导航跳到搜索
可打印版本不再受到支持且可能有渲染错误。请更新您的浏览器书签并改用浏览器默认打印功能。

{{#ifexist: :LongRunHowTo/zh | | {{#ifexist: LongRunHowTo/zh | | {{#ifeq: {{#titleparts:LongRunHowTo|1|-1|}} | zh | | }} }} }} {{#ifeq: {{#titleparts:LongRunHowTo|1|-1|}} | zh | | }}

  1. title LongRun Power Management Guide

Long'Run is a Transmeta (tm) introduced feature in their Crusoe (tm) and Efficeon (tm) based processors for power management. It allows processors to be configured to use less or more power by demand or on its own using extensions built into the processors.

Definition

The official definition from http://www.transmeta.com/efficeon/faq.html#12: Long'Run is Transmeta's original proprietary power management technology that enables processors to change voltage and frequency dynamically -- hundreds of times per second -- to provide the performance needed by the application at any moment. Transmeta introduced Long'Run power management in the Crusoe processor, and the new Efficeon processor now also incorporates Enhanced Long'Run technology. This page is dedicated to making Ubuntu Linux take advantage of and control Long Run enabled processors -- most notably the Crusoe processors from Transmeta. This HOWTO was written to explain certain things regarding the longrun utility and how to get it to work on Ubuntu 5.04 (Hoary Hedgehog). Note: Tips may work on previous versions of Ubuntu, however testing would be necessary to confirm their effectiveness.

Requirements

To be able to make use of the Long'Run functionality of the Transmeta Crusoe family of processors on Ubuntu Linux, there are certain requirements especially in the kernel drivers. These are the following:

  • CPUID device driver
  • MSR device driver
  • longrun package (available from the universe repository)

The first two device drivers may be loaded from the default Ubuntu packaged Linux Kernel by issuing the following commands from the terminal (or the shell):

sudo modprobe cpuid
sudo modprobe msr

The two modules may be loaded during boot time by adding the two module names to /etc/modules -- and part of which is shown below:

# /etc/modules: kernel modules to load at boot time.

...

# load the two required modules for longrun at boot time.
cpuid
msr

...

The longrun utility is provided by the `longrun package from universe:

sudo apt-get install longrun

Command Index

There are five operations which can be done using the longrun utility to enable, configure, disable, and query the LongRun settings for the processor. These are:

  • Listing Long'Run information about available performance levels for the processor.
  • Printing the current Long'Run settings and status
  • Setting the Long'Run mode flag
  • Configuring the current Long'Run performance window
  • Setting the current Long'Run Thermal Extensions setting

These operations are enumerated in depth in the following sections. The basic format for the longrun command is as follows:

longrun -c (cpuid device) -m (msr device) (command flag) [command options]

CPUID device pertains to the device created and associated with the CPUID device driver -- and which works the same for the MSR device, created and associated with the MSR device driver. Usually, on uniprocessor systems, CPUID and MSR devices for the one and only processor are the following files respectively:

/dev/cpu/0/cpuid
/dev/cpu/0/msr

When used in the longrun function, it usually looks like the following:

sudo longrun -c /dev/cpu/0/cpuid -m /dev/cpu/0/msr ...

The '0' (zero) pertains to the cpu id which you want to be able to control with the utility. In cases where there are more than one LongRun capable processor in the system, the each one gets a cpu id. For example, in a dual-Crusoe(TM) system, the second processor is accessed using the following device(s):

/dev/cpu/1/cpuid
/dev/cpu/1/msr

NOTE: To be able to perform these operations, make sure that the appropriate drivers have been loaded and that the `longrun is installed in the system. See above for information about installing required packages and loaded device drivers.

Displaying current settings and status.

The following command can be used to display the current settings and status:

sudo longrun -c /dev/0/cpuid -m /dev/0/msr -p

Which would yield something similar to this:

LongRun: enabled
LongRun Thermal Extensions (LTX): inactive
Current performance window: 0 to 100
Current performance level: 66
LongRun flags: economy

Listing available LongRun performance levels

To see the available performance levels for the processor, the following command should show that information on the terminal/command line:

sudo longrun -c /dev/cpu/0/cpuid -m /dev/cpu/0/msr -l

Typical outputs look like the following:

# %   MHz  Volts  usage  SDR  DDR  PCI
  0   300  1.200  0.281  100   75   33
 33   400  1.250  0.407  100   80   33
 66   500  1.400  0.638  125  100   33
100   600  1.600  1.000  120  100   33

The above values are obtained from a Transmeta(TM) Crusoe(TM) Processor TM5600, installed on an ECS Desknote A530 (See ECS Hardware Support for more information). The significant values of note are the values on the first column, which defines the possible values for the performance window.

Configuring the Current Performance Window

Given the values from the available performance levels, setting the current performance window (minimum and maximum levels) may be done using the following command:

sudo longrun -c /dev/cpu/0/cpuid -m /dev/cpu/0/msr -s 0 100

When the current settings and status are displayed, the output should be similar to the following:

sudo longrun -c /dev/cpu/0/cpuid -m /dev/cpu/0/msr -p

Ouput:

LongRun: enabled
LongRun Thermal Extensions (LTX): inactive
Current performance window: 0 to 100
Current performance level: 100
LongRun flags: economy

TODO: Explain performance window and its effect on the performance of the processor.

Setting the performance mode flag

Long'Run CPU's have different performance mode flags, which can be set using the -f' option of the longrun utility. In the case of the Transmeta Crusoe TM5600, the two flags performance and economy are available. To set the performance flag using the longrun utility, the following command can be used:

sudo longrun -c /dev/0/cpuid -m /dev/0/msr -f performance

Which sets the performance flag for the processor. To verify the results, the settings are printed:

sudo longrun -c /dev/0/cpuid -m /dev/0/msr -p
LongRun: enabled
LongRun Thermal Extensions (LTX): inactive
Current performance window: 0 to 100
Current performance level: 100
LongRun flags: performance

TODO: Explain what the performance and economy flags do for the processor. Consult technical docs for more info.

Setting thermal extension settings.

Long'Run Thermal Extensions (LTX) can be enabled, disabled, and configured using the -t' option. Valid values range from 0 to 8 where a setting of 8 turns off the extensions. To set the LTX to the highest sensitivity (?) setting of 0, the following command can be used:

sudo longrun -c /dev/cpu/0/cpuid -m /dev/cpu/0/msr -t 0

To verify:

sudo longrun -c /dev/cpu/0/cpuid -m /dev/cpu/0/msr -p
LongRun: enabled
LongRun Thermal Extensions (LTX): active
LTX setting: reserved
Current performance window: 0 to 100
Current performance level: 0
LongRun flags: performance

Notice that the LTX setting is set to reserved' while the Long'Run Thermal Extensions (LTX) indicates that it's "active". From man longrun:

Longrun Thermal  Extensions  (LTX)  is  an  alternative  way  to
manipulate  the  power saving functionality of the processor, by
controlling heat dissipation directly.   Settings  2  through  8
represent   power   utilization   levels   from   25%  to  100%,
respectively, in 12.5% increments.  NOTE: Settings 0 and  1  are
listed  as  ’reserved’  in  the  TM5600 literature.  Though they
appear to represent 0% and  12.5%  respectively  on  the  TM5800
chip, use these settings at your own risk.

...

Notes:  This  functionality  may  or  may  not  provide you with
different performance per  watt  characteristings  than  the  -s
flag.   It is provided for completeness, and left as an exercise
to the reader to decide if it is appropriate  on  their  system.
As mentioned above, use the -t 0 and -t 1 settings with caution.

More Information

This HOWTO is a work in progress. Please feel free to comment on the Wiki, or contact Dean Michael Berris for questions and clarifications.