前言
P-states(performance stats).
System UEFI P-State control methods
以Lenovo ThinkSystem服务器为例,在机器POST过程中按F1进入UEFI界面,可以访问CPU Pstate的设置,如下所示:
Pstate不同设置的含义
Autonomous (default)
This mode is part of Intel’s Hardware Power Management (HWPM) feature and is the default in ThinkSystem servers. With the Autonomous selection, the P-states are completely controlled by system hardware. From the operating system's perspective, there are no P-states and the OS always thinks the processor is running at its rated frequency. The processor’s efficiency is totally dependent on Intel’s hardware management engine (ME) implementation.
Legacy
When Legacy is selected, the processor P-states will be presented to the OS and the OS power management (OSPM) will directly control which P-state is selected. Legacy provides slightly higher latency than Autonomous since its desired frequency is calculated by the OS. It is also useful on older OSes that don't support Cooperative mode and older hardware without HWPM support.
Cooperative
Cooperative mode is also part of Intel’s HWPM feature. Cooperative mode is a combination of Autonomous and Legacy modes. Like Autonomous mode, the P-states are still controlled by the system hardware. However, in Cooperative mode, the OS is aware that different processor operating frequencies exist and it can provide hints to the system hardware for the minimum, desired, and maximum P-states.
The system hardware does not always have to honor the OS requested P-state however. The final P-state chosen is influenced by the Power/Performance Bias setting which is configurable under the Operating Modes menu panel and also the current condition of the processor (power draw, temperature, number of active cores).
For more details about Power/Performance Bias, see “Power bias and performance bias” of the Lenovo Press paper, Energy Efficiency Features of Lenovo
ThinkSystem Servers: https://lenovopress.com/lp0780-energy-efficiency-features-thinksystem
Newer OSes (for example, Windows Server 2016, RHEL 7.x, Ubuntu 15.x, Linux kernel 3.19 and higher) are required to take advantage of cooperative P-states. If Cooperative is selected on an older OS that doesn't support it, the system will fall back to Autonomous mode.
None
When P-states are set to None, P-states are completely disabled and the processors run at either their rated frequency or in turbo mode (if Turbo Boost is enabled). None is the best choice when the absolute lowest latency and highest performance are desired. The trade-off is that power consumption is higher.
Linux系统下Pstate的测试
Autonomous (default)
This mode is part of Intel’s Hardware Power Management (HWPM) feature and is the default in ThinkSystem servers. With the Autonomous selection, the P-states are completely controlled by system hardware. From the operating system's perspective, there are no P-states and the OS always thinks the processor is running at its rated frequency. The processor’s efficiency is totally dependent on Intel’s hardware management engine (ME) implementation.
When the P-state control is set to Autonomous in UEFI, there will be no CPU frequency driver loaded into OS either. As shown in Figure , it is similar to None, but processor frequency selection will be handled by the Intel ME alone and independent of any software including the OS.
UEFI setting
Processors.TurboMode=Enable
Processors.CPUPstateControl=Autonomous
Processors.EnergyEfficientTurbo=Enable
turbostat
cpudriver
[root@localhost ~]# cpupower frequency-info
analyzing CPU 0:
no or unknown cpufreq driver is active on this CPU
CPUs which run at the same hardware frequency: Not Available
CPUs which need to have their frequency coordinated by software: Not Available
maximum transition latency: Cannot determine or is not supported.
hardware limits: Not Available
available cpufreq governors: Not Available
Unable to determine current policy
current CPU frequency: Unable to call hardware
current CPU frequency: Unable to call to kernel
boost state support:
Supported: yes
Active: yes
cpu加压测试
UEFI Setting
Processors.TurboMode=Disable
Processors.CPUPstateControl=Autonomous
Processors.EnergyEfficientTurbo=Enable
Turbostat
CPU driver
[root@localhost ~]# cpupower frequency-info
analyzing CPU 0:
no or unknown cpufreq driver is active on this CPU
CPUs which run at the same hardware frequency: Not Available
CPUs which need to have their frequency coordinated by software: Not Available
maximum transition latency: Cannot determine or is not supported.
hardware limits: Not Available
available cpufreq governors: Not Available
Unable to determine current policy
current CPU frequency: Unable to call hardware
current CPU frequency: Unable to call to kernel
boost state support:
Supported: yes
Active: yes
CPU加压测试
None
When P-states are set to None, P-states are completely disabled and the processors run at either their rated frequency or in turbo mode (if Turbo Boost is enabled). None is the best choice when the absolute lowest latency and highest performance are desired. The trade-off is that power consumption is higher.When the P-state control is set to None in UEFI, there is no CPU frequency driver loaded into the OS. Also, no processor frequency info is implemented into the ACPI related tables. As shown in Figur, we observe neither CPU frequency driver nor P-state info is available to the OS.
Uefi setting
Processors.TurboMode=Disable
Processors.CPUPstateControl=None
Processors.EnergyEfficientTurbo=Enable
Turbostat
Cpu的频率并没有固定在标准频率,(预期应该是固定在标准频率,后续会再对此进行下调查)。
cpudriver
[root@localhost~]# cpupower frequency-info
analyzing CPU 0:
no or unknown cpufreq driver is active on this CPU
CPUs which run at the same hardware frequency: Not Available
CPUs which need to have their frequency coordinated by software: Not Available
maximum transition latency: Cannot determine or is not supported.
hardware limits: Not Available
available cpufreq governors: Not Available
Unable to determine current policy
current CPU frequency: Unable to call hardware
current CPU frequency: Unable to call to kernel
boost state support:
Supported: no
Active: no
CPU加压测试
UEFI setting
Processors.TurboMode=Enable
Processors.CPUPstateControl=None
Processors.EnergyEfficientTurbo=Enable
Turbostat
Cpudriver
[root@localhost ~]# cpupower frequency-info
analyzing CPU 0:
no or unknown cpufreq driver is active on this CPU
CPUs which run at the same hardware frequency: Not Available
CPUs which need to have their frequency coordinated by software: Not Available
maximum transition latency: Cannot determine or is not supported.
hardware limits: Not Available
available cpufreq governors: Not Available
Unable to determine current policy
current CPU frequency: Unable to call hardware
current CPU frequency: Unable to call to kernel
boost state support:
Supported: yes
Active: yes
cpu加压测试
Legacy
When Legacy is selected, the processor P-states will be presented to the OS and the OS power management (OSPM) will directly control which P-state is selected. Legacy Understanding P-State Control on Intel Xeon Scalable Processors to Maximize Energy Efficiency provides slightly higher latency than Autonomous since its desired frequency is calculated by the OS. It is also useful on older OSes that don't support Cooperative mode and older hardware without HWPM support.
When the P-state control is set to Legacy in UEFI, the acpi-cpufreq driver will be loaded into the OS . P-states will be enabled by UEFI and five governors can be selected. The available governors are:
� conservative
� userspace
� powersave
� ondemand
� performance
UEFI setting
Processors.TurboMode=Enable
Processors.CPUPstateControl=Legacy
Processors.EnergyEfficientTurbo=Enable
cpudriver
[root@localhost ~]# cpupower frequency-info
analyzing CPU 0:
driver: acpi-cpufreq
CPUs which run at the same hardware frequency: 0
CPUs which need to have their frequency coordinated by software: 0
maximum transition latency: 10.0 us
hardware limits: 1000 MHz - 2.10 GHz
available frequency steps: 2.10 GHz, 2.10 GHz, 2.00 GHz, 1.90 GHz, 1.80 GHz, 1.70 GHz, 1.60 GHz, 1.50 GHz, 1.40 GHz, 1.30 GHz, 1.20 GHz, 1.10 GHz, 1000 MHz
available cpufreq governors: conservative userspace powersave ondemand performance
current policy: frequency should be within 1000 MHz and 2.10 GHz.
The governor "conservative" may decide which speed to use
within this range.
current CPU frequency: 1.40 GHz (asserted by call to hardware)
boost state support:
Supported: yes
Active: yes
Turbostat
CPU加压测试
cpudriver修改为performance
[root@localhost ~]# cpupower frequency-info
analyzing CPU 0:
driver: acpi-cpufreq
CPUs which run at the same hardware frequency: 0
CPUs which need to have their frequency coordinated by software: 0
maximum transition latency: 10.0 us
hardware limits: 1000 MHz - 2.10 GHz
available frequency steps: 2.10 GHz, 2.10 GHz, 2.00 GHz, 1.90 GHz, 1.80 GHz, 1.70 GHz, 1.60 GHz, 1.50 GHz, 1.40 GHz, 1.30 GHz, 1.20 GHz, 1.10 GHz, 1000 MHz
available cpufreq governors: conservative userspace powersave ondemand performance
current policy: frequency should be within 1000 MHz and 2.10 GHz.
The governor "performance" may decide which speed to use
within this range.
current CPU frequency: 2.10 GHz (asserted by call to hardware)
boost state support:
Supported: yes
Active: yes
CPU加压测试
cpudriver修改为powersave
[root@localhost ~]# cpupower frequency-info
analyzing CPU 0:
driver: acpi-cpufreq
CPUs which run at the same hardware frequency: 0
CPUs which need to have their frequency coordinated by software: 0
maximum transition latency: 10.0 us
hardware limits: 1000 MHz - 2.10 GHz
available frequency steps: 2.10 GHz, 2.10 GHz, 2.00 GHz, 1.90 GHz, 1.80 GHz, 1.70 GHz, 1.60 GHz, 1.50 GHz, 1.40 GHz, 1.30 GHz, 1.20 GHz, 1.10 GHz, 1000 MHz
available cpufreq governors: conservative userspace powersave ondemand performance
current policy: frequency should be within 1000 MHz and 2.10 GHz.
The governor "powersave" may decide which speed to use
within this range.
current CPU frequency: 1000 MHz (asserted by call to hardware)
boost state support:
Supported: yes
Active: yes
CPU加压测试
cpudriver修改为userspace
[root@localhost ~]# cpupower frequency-set userspace -f 1218MHZ
[root@localhost~]# cpupower frequency-info
analyzing CPU 0:
driver: acpi-cpufreq
CPUs which run at the same hardware frequency: 0
CPUs which need to have their frequency coordinated by software: 0
maximum transition latency: 10.0 us
hardware limits: 1000 MHz - 2.10 GHz
available frequency steps: 2.10 GHz, 2.10 GHz, 2.00 GHz, 1.90 GHz, 1.80 GHz, 1.70 GHz, 1.60 GHz, 1.50 GHz, 1.40 GHz, 1.30 GHz, 1.20 GHz, 1.10 GHz, 1000 MHz
available cpufreq governors: conservative userspace powersave ondemand performance
current policy: frequency should be within 1000 MHz and 2.10 GHz.
The governor "userspace" may decide which speed to use
within this range.
current CPU frequency: 1.30 GHz (asserted by call to hardware)
boost state support:
Supported: yes
Active: yes
CPU加压测试
Cooperative
Cooperative mode is also part of Intel’s HWPM feature. Cooperative mode is a combination of Autonomous and Legacy modes. Like Autonomous mode, the P-states are still controlled by the system hardware. However, in Cooperative mode, the OS is aware that different processor operating frequencies exist and it can provide hints to the system hardware for the minimum, desired, and maximum P-states. The system hardware does not always have to honor the OS requested P-state however. The final P-state chosen is influenced by the Power/Performance Bias setting which is configurable under the Operating Modes menu panel and also the current condition of the processor (power draw, temperature, number of active cores).
When the P-state control is set to Cooperative in UEFI, the intel_pstate driver will be loaded in the OS. The OS is aware of the processor frequencies from the minimum frequency to maximum turbo frequency . There are only two governors:
� performance (the default)
� powersave
注:在这里需要说明的是操作系统需要开启intel_pstate,如果默认没有开启,则可以添加intel_pstate=1参数, 有的情况下需要添加,有的情况下不需要添加。
UEFI setting
Processors.TurboMode=Enable
Processors.CPUPstateControl=Cooperative
Processors.EnergyEfficientTurbo=Enable
cpupower frequency-info
[root@localhost ~]# cpupower frequency-info
analyzing CPU 0:
driver: intel_pstate
CPUs which run at the same hardware frequency: 0
CPUs which need to have their frequency coordinated by software: 0
maximum transition latency: Cannot determine or is not supported.
hardware limits: 1000 MHz - 3.70 GHz
available cpufreq governors: performance powersave
current policy: frequency should be within 1000 MHz and 3.70 GHz.
The governor "performance" may decide which speed to use
within this range.
current CPU frequency: 1.01 GHz (asserted by call to hardware)
boost state support:
Supported: yes
Active: yes