SlideShare a Scribd company logo
1 of 19
Power Management
Scott Shu
Power Modes
• DFS
• Halt
• Doze
• Sleep
• Hibernate
Linux PM Framework
• CPUIdle
– Idle threads trigger sleep states (C0, C1, …)
• CPUFreq
– CPU Frequency scaling (CPU DFS)
• CPU DVFS
• CPU Hotplug
• DDR DVFS
• Peripheral DVFS
• Suspend (save to RAM)
• Hibernate (save to Disk)
SW-HW PM Mapping
CPUIdle
• For UP system, support 2 idle stetes
– C0: CPU WFI
– C1: CPU WFI and DDR self-refresh
• For SMP system, only support 1 idle state
– C0: CPU WFI
• CPUIdle governors
– The menu governor can jump into a deeper state immediately.
(C0 -> C2)
– The ladder governor enters the lightest state first, and move on
to the next deeper state if a sleep was long enough. (C0 -> C1 ->
C2)
• Driver
– drivers/cpuidle/cpuidle-xxxxxx.c
CPUIdle Example
# cat /sys/devices/system/cpu/cpu0/cpuidle/state0/desc
Wait for interrupt ; Shows the description of the state
# cat /sys/devices/system/cpu/cpu0/cpuidle/state0/disable
0
# cat /sys/devices/system/cpu/cpu0/cpuidle/state0/latency
1 ; Shows the wakeup latency for this state.
# cat /sys/devices/system/cpu/cpu0/cpuidle/state0/name
WFI ; Shows the name of the state
# cat /sys/devices/system/cpu/cpu0/cpuidle/state0/power
4294967295 ; Shows the typical power consumed when CPU enters this state in mW
# cat /sys/devices/system/cpu/cpu0/cpuidle/state0/time
79420040 ; Shows the amount of time spent in this idle state in usec.
# cat /sys/devices/system/cpu/cpu0/cpuidle/state0/usage
14417 ; Shows the count of number of times this idle state has been entered
CPUFreq
• CPU Frequency Scaling
• CPUFreq governors
– Conservative: Dynamically switch between CPU(s) available if
at 75% load
– Ondemand: Dynamically switch between CPU(s) available if at
95% load
– Performance: Run the CPU at maximum frequency
– Powersave: Run the CPU at the minimum frequency
– Userspace: Run the CPU at user specified frequencies
• Driver
– drivers/cpufreq/xxxxxx-cpufreq.c
CPUFreq Example
# cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq
800
# cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq
100
# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
Userspace
# echo 700 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
# cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
700
# mhz
700 MHz, 1.4286 nanosec clock
CPU DVFS
• CPUFreq + Voltage Layer
• Regulator Framework
– Regulates the output power from input power
• Voltage Control
• Current Limiting
• Switch output power ON/OFF
VDD1 1100 ~ 1200 mV CPU_1V1
VDD2 1350 ~ 1500 mV DRAM_1V5
VIO 3300 mV D.3.3V_G
VDDCTRL 1100 mV SOC_1V1
LDO1 1800 mV Reserved
LDO2 2500 mV Reserved
LDO3 1100 mV SB_1.1V
LDO4 1100 mV Reserved
LDO5 3300 mV SB_3.3V
LDO6 3300 mV Reserved
LDO7 2500 mV CHIP_2.5V
LDO8 1000 ~ 3300 mV SD_IF_VDD
Regulator Framework
• Regulator APIs
struct regulator * regulator_get (struct device *dev,
const char *id);
regulator_put(regulator);
int regulator_set_voltage(struct regulator *regulator,
int min_uV, int max_uV);
int regulator_get_voltage(struct regulator *regulator);
int regulator_enable(regulator);
int regulator_disable(regulator);
int regulator_force_disable(regulator);
int regulator_is_enabled(regulator);
Reference:
https://www.kernel.org/doc/htmldocs/regulator.html
CPU DVFS Example
# cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
800
# cat /sys/class/regulator/regulator.3/microvolts
1200000
; Change CPU speed to 700 MHz
# echo 700 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
# cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
700
# cat /sys/class/regulator/regulator.3/microvolts
1187500
CPU Hotplug
• CPU hotplug is one approach for bring up /
shutdown the secondary CPU Cores
• The code can be used by kernel “suspend” and
“hibernate”.
• From a power consumption point of view, the
CPU hotplug feature might not be very useful
for a SMP system.
CPU Hotplug Example
# cat /sys/devices/system/cpu/online
0-2
# cat /sys/devices/system/cpu/offline
# echo 0 > /sys/devices/system/cpu/cpu2/online
[ 7732.890000] CPU2: shutdown
# cat /sys/devices/system/cpu/online
0-1
# cat /sys/devices/system/cpu/offline
2
# echo 1 > /sys/devices/system/cpu/cpu2/online
[ 7759.660000] CPU2: Booted secondary processor
# cat /sys/devices/system/cpu/online
0-2
DDR DVFS
DevFreq
• DVFS framework for non-CPU device
• Clock Tree
Clock Tree
• Clock APIs
• Device
• Driver
– arch/arm/mach-xxxxxx/clock.c
Suspend
Hibernate
Example
• Lightweight Suspend (DOZE Mode)
# echo suspend > /sys/power/state
• Suspend (SLEEP Mode)
# echo mem > /sys/power/state
• Hibernate (HIBERNATE Mode)
# echo disk > /sys/power/state

More Related Content

What's hot

Bootloaders (U-Boot)
Bootloaders (U-Boot) Bootloaders (U-Boot)
Bootloaders (U-Boot) Omkar Rane
 
Part-1 : Mastering microcontroller with embedded driver development
Part-1 : Mastering microcontroller with embedded driver development Part-1 : Mastering microcontroller with embedded driver development
Part-1 : Mastering microcontroller with embedded driver development FastBit Embedded Brain Academy
 
HKG15-107: ACPI Power Management on ARM64 Servers (v2)
HKG15-107: ACPI Power Management on ARM64 Servers (v2)HKG15-107: ACPI Power Management on ARM64 Servers (v2)
HKG15-107: ACPI Power Management on ARM64 Servers (v2)Linaro
 
LCU14-410: How to build an Energy Model for your SoC
LCU14-410: How to build an Energy Model for your SoCLCU14-410: How to build an Energy Model for your SoC
LCU14-410: How to build an Energy Model for your SoCLinaro
 
Kernel Features for Reducing Power Consumption on Embedded Devices
Kernel Features for Reducing Power Consumption on Embedded DevicesKernel Features for Reducing Power Consumption on Embedded Devices
Kernel Features for Reducing Power Consumption on Embedded DevicesRyo Jin
 
Q4.11: Introduction to eMMC
Q4.11: Introduction to eMMCQ4.11: Introduction to eMMC
Q4.11: Introduction to eMMCLinaro
 
Part-2: Mastering microcontroller with embedded driver development
Part-2: Mastering microcontroller with embedded driver developmentPart-2: Mastering microcontroller with embedded driver development
Part-2: Mastering microcontroller with embedded driver developmentFastBit Embedded Brain Academy
 
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
HKG15-505: Power Management interactions with OP-TEE and Trusted FirmwareHKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
HKG15-505: Power Management interactions with OP-TEE and Trusted FirmwareLinaro
 
Virtualization Support in ARMv8+
Virtualization Support in ARMv8+Virtualization Support in ARMv8+
Virtualization Support in ARMv8+Aananth C N
 
Universal flash storage
Universal flash storageUniversal flash storage
Universal flash storageDooyong Lee
 
Mastering Microcontroller : TIMERS, PWM, CAN, RTC,LOW POWER
Mastering Microcontroller : TIMERS, PWM, CAN, RTC,LOW POWERMastering Microcontroller : TIMERS, PWM, CAN, RTC,LOW POWER
Mastering Microcontroller : TIMERS, PWM, CAN, RTC,LOW POWERFastBit Embedded Brain Academy
 
SFO15-TR9: PSCI, ACPI (and UEFI to boot)
SFO15-TR9: PSCI, ACPI (and UEFI to boot)SFO15-TR9: PSCI, ACPI (and UEFI to boot)
SFO15-TR9: PSCI, ACPI (and UEFI to boot)Linaro
 
XPDDS18: CPUFreq in Xen on ARM - Oleksandr Tyshchenko, EPAM Systems
XPDDS18: CPUFreq in Xen on ARM - Oleksandr Tyshchenko, EPAM SystemsXPDDS18: CPUFreq in Xen on ARM - Oleksandr Tyshchenko, EPAM Systems
XPDDS18: CPUFreq in Xen on ARM - Oleksandr Tyshchenko, EPAM SystemsThe Linux Foundation
 

What's hot (20)

Bootloaders (U-Boot)
Bootloaders (U-Boot) Bootloaders (U-Boot)
Bootloaders (U-Boot)
 
Part-1 : Mastering microcontroller with embedded driver development
Part-1 : Mastering microcontroller with embedded driver development Part-1 : Mastering microcontroller with embedded driver development
Part-1 : Mastering microcontroller with embedded driver development
 
What is Bootloader???
What is Bootloader???What is Bootloader???
What is Bootloader???
 
HKG15-107: ACPI Power Management on ARM64 Servers (v2)
HKG15-107: ACPI Power Management on ARM64 Servers (v2)HKG15-107: ACPI Power Management on ARM64 Servers (v2)
HKG15-107: ACPI Power Management on ARM64 Servers (v2)
 
LCU14-410: How to build an Energy Model for your SoC
LCU14-410: How to build an Energy Model for your SoCLCU14-410: How to build an Energy Model for your SoC
LCU14-410: How to build an Energy Model for your SoC
 
Introduction to Modern U-Boot
Introduction to Modern U-BootIntroduction to Modern U-Boot
Introduction to Modern U-Boot
 
U-Boot - An universal bootloader
U-Boot - An universal bootloader U-Boot - An universal bootloader
U-Boot - An universal bootloader
 
Kernel Features for Reducing Power Consumption on Embedded Devices
Kernel Features for Reducing Power Consumption on Embedded DevicesKernel Features for Reducing Power Consumption on Embedded Devices
Kernel Features for Reducing Power Consumption on Embedded Devices
 
U boot-boot-flow
U boot-boot-flowU boot-boot-flow
U boot-boot-flow
 
Q4.11: Introduction to eMMC
Q4.11: Introduction to eMMCQ4.11: Introduction to eMMC
Q4.11: Introduction to eMMC
 
Part-2: Mastering microcontroller with embedded driver development
Part-2: Mastering microcontroller with embedded driver developmentPart-2: Mastering microcontroller with embedded driver development
Part-2: Mastering microcontroller with embedded driver development
 
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
HKG15-505: Power Management interactions with OP-TEE and Trusted FirmwareHKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
 
Processors selection
Processors selectionProcessors selection
Processors selection
 
Virtualization Support in ARMv8+
Virtualization Support in ARMv8+Virtualization Support in ARMv8+
Virtualization Support in ARMv8+
 
Universal flash storage
Universal flash storageUniversal flash storage
Universal flash storage
 
Mastering Microcontroller : TIMERS, PWM, CAN, RTC,LOW POWER
Mastering Microcontroller : TIMERS, PWM, CAN, RTC,LOW POWERMastering Microcontroller : TIMERS, PWM, CAN, RTC,LOW POWER
Mastering Microcontroller : TIMERS, PWM, CAN, RTC,LOW POWER
 
SFO15-TR9: PSCI, ACPI (and UEFI to boot)
SFO15-TR9: PSCI, ACPI (and UEFI to boot)SFO15-TR9: PSCI, ACPI (and UEFI to boot)
SFO15-TR9: PSCI, ACPI (and UEFI to boot)
 
XPDDS18: CPUFreq in Xen on ARM - Oleksandr Tyshchenko, EPAM Systems
XPDDS18: CPUFreq in Xen on ARM - Oleksandr Tyshchenko, EPAM SystemsXPDDS18: CPUFreq in Xen on ARM - Oleksandr Tyshchenko, EPAM Systems
XPDDS18: CPUFreq in Xen on ARM - Oleksandr Tyshchenko, EPAM Systems
 
Bootloaders
BootloadersBootloaders
Bootloaders
 
Linux device drivers
Linux device driversLinux device drivers
Linux device drivers
 

Viewers also liked

The Theory and Implementation of DVFS on Linux
The Theory and Implementation of DVFS on LinuxThe Theory and Implementation of DVFS on Linux
The Theory and Implementation of DVFS on LinuxPicker Weng
 
SFO15-302: Energy Aware Scheduling: Progress Update
SFO15-302: Energy Aware Scheduling: Progress UpdateSFO15-302: Energy Aware Scheduling: Progress Update
SFO15-302: Energy Aware Scheduling: Progress UpdateLinaro
 
Android power management
Android power managementAndroid power management
Android power managementJerrin George
 
ParrobaArTeCsecs_11-03-13
ParrobaArTeCsecs_11-03-13ParrobaArTeCsecs_11-03-13
ParrobaArTeCsecs_11-03-13greendisc
 
Dvfs nima-afraz
Dvfs nima-afrazDvfs nima-afraz
Dvfs nima-afrazNima Afraz
 
Energy efficient computing & computational services
Energy efficient computing & computational services Energy efficient computing & computational services
Energy efficient computing & computational services David Wallom
 
Green cloud computing using heuristic algorithms
Green cloud computing using heuristic algorithmsGreen cloud computing using heuristic algorithms
Green cloud computing using heuristic algorithmsIliad Mnd
 
LCA13: Who Disturbs My Slumber
LCA13: Who Disturbs My SlumberLCA13: Who Disturbs My Slumber
LCA13: Who Disturbs My SlumberLinaro
 
BKK16-311 EAS Upstream Stategy
BKK16-311 EAS Upstream StategyBKK16-311 EAS Upstream Stategy
BKK16-311 EAS Upstream StategyLinaro
 
Linaro Connect 2016 (BKK16) - Introduction to LISA
Linaro Connect 2016 (BKK16) - Introduction to LISALinaro Connect 2016 (BKK16) - Introduction to LISA
Linaro Connect 2016 (BKK16) - Introduction to LISAPatrick Bellasi
 
Electrical power system management
Electrical power system managementElectrical power system management
Electrical power system managementAkshay Awadhani
 
Linux Power Management Slideshare
Linux Power Management SlideshareLinux Power Management Slideshare
Linux Power Management SlidesharePatrick Bellasi
 
Summit 16: ARM Mini-Summit - Efficient NFV solutions for Cloud and Edge - Cavium
Summit 16: ARM Mini-Summit - Efficient NFV solutions for Cloud and Edge - CaviumSummit 16: ARM Mini-Summit - Efficient NFV solutions for Cloud and Edge - Cavium
Summit 16: ARM Mini-Summit - Efficient NFV solutions for Cloud and Edge - CaviumOPNFV
 
Embedded Systems Power Management
Embedded Systems Power ManagementEmbedded Systems Power Management
Embedded Systems Power ManagementPatrick Bellasi
 
Intelligent electrical system
Intelligent electrical systemIntelligent electrical system
Intelligent electrical systemmuddulakshmi
 
Cells and batteries
Cells and batteriesCells and batteries
Cells and batteriesAmy Gilewska
 
Presentation on battery
Presentation on batteryPresentation on battery
Presentation on batterySheikh Aves
 

Viewers also liked (20)

The Theory and Implementation of DVFS on Linux
The Theory and Implementation of DVFS on LinuxThe Theory and Implementation of DVFS on Linux
The Theory and Implementation of DVFS on Linux
 
SFO15-302: Energy Aware Scheduling: Progress Update
SFO15-302: Energy Aware Scheduling: Progress UpdateSFO15-302: Energy Aware Scheduling: Progress Update
SFO15-302: Energy Aware Scheduling: Progress Update
 
Android power management
Android power managementAndroid power management
Android power management
 
Power Management from Linux Kernel to Android
Power Management from Linux Kernel to AndroidPower Management from Linux Kernel to Android
Power Management from Linux Kernel to Android
 
ParrobaArTeCsecs_11-03-13
ParrobaArTeCsecs_11-03-13ParrobaArTeCsecs_11-03-13
ParrobaArTeCsecs_11-03-13
 
Dvfs nima-afraz
Dvfs nima-afrazDvfs nima-afraz
Dvfs nima-afraz
 
Energy efficient computing & computational services
Energy efficient computing & computational services Energy efficient computing & computational services
Energy efficient computing & computational services
 
Green cloud computing using heuristic algorithms
Green cloud computing using heuristic algorithmsGreen cloud computing using heuristic algorithms
Green cloud computing using heuristic algorithms
 
LCA13: Who Disturbs My Slumber
LCA13: Who Disturbs My SlumberLCA13: Who Disturbs My Slumber
LCA13: Who Disturbs My Slumber
 
BKK16-311 EAS Upstream Stategy
BKK16-311 EAS Upstream StategyBKK16-311 EAS Upstream Stategy
BKK16-311 EAS Upstream Stategy
 
Linaro Connect 2016 (BKK16) - Introduction to LISA
Linaro Connect 2016 (BKK16) - Introduction to LISALinaro Connect 2016 (BKK16) - Introduction to LISA
Linaro Connect 2016 (BKK16) - Introduction to LISA
 
Electrical power system management
Electrical power system managementElectrical power system management
Electrical power system management
 
Linux Power Management Slideshare
Linux Power Management SlideshareLinux Power Management Slideshare
Linux Power Management Slideshare
 
Power Management in BMS
Power Management in BMSPower Management in BMS
Power Management in BMS
 
Summit 16: ARM Mini-Summit - Efficient NFV solutions for Cloud and Edge - Cavium
Summit 16: ARM Mini-Summit - Efficient NFV solutions for Cloud and Edge - CaviumSummit 16: ARM Mini-Summit - Efficient NFV solutions for Cloud and Edge - Cavium
Summit 16: ARM Mini-Summit - Efficient NFV solutions for Cloud and Edge - Cavium
 
Embedded Systems Power Management
Embedded Systems Power ManagementEmbedded Systems Power Management
Embedded Systems Power Management
 
Intelligent electrical system
Intelligent electrical systemIntelligent electrical system
Intelligent electrical system
 
Cells and batteries
Cells and batteriesCells and batteries
Cells and batteries
 
Presentation on battery
Presentation on batteryPresentation on battery
Presentation on battery
 
Battery
Battery Battery
Battery
 

Similar to Linux PM Framework Mapping CPU Power Modes

Tizen Developer Conference 2017 San Francisco - Tizen Power Management Servic...
Tizen Developer Conference 2017 San Francisco - Tizen Power Management Servic...Tizen Developer Conference 2017 San Francisco - Tizen Power Management Servic...
Tizen Developer Conference 2017 San Francisco - Tizen Power Management Servic...Chanwoo Choi
 
Summit demystifying systemd1
Summit demystifying systemd1Summit demystifying systemd1
Summit demystifying systemd1Susant Sahani
 
VMworld 2016: vSphere 6.x Host Resource Deep Dive
VMworld 2016: vSphere 6.x Host Resource Deep DiveVMworld 2016: vSphere 6.x Host Resource Deep Dive
VMworld 2016: vSphere 6.x Host Resource Deep DiveVMworld
 
Advanced Diagnostics 2
Advanced Diagnostics 2Advanced Diagnostics 2
Advanced Diagnostics 2Aero Plane
 
[IDF'15 SF] RPCS001 — Overclocking 6th Generation Intel® Core™ Processors!
[IDF'15 SF] RPCS001 — Overclocking 6th Generation Intel® Core™ Processors![IDF'15 SF] RPCS001 — Overclocking 6th Generation Intel® Core™ Processors!
[IDF'15 SF] RPCS001 — Overclocking 6th Generation Intel® Core™ Processors!HWBOT
 
Nvidia tegra K1 Presentation
Nvidia tegra K1 PresentationNvidia tegra K1 Presentation
Nvidia tegra K1 PresentationANURAG SEKHSARIA
 
Build an High-Performance and High-Durable Block Storage Service Based on Ceph
Build an High-Performance and High-Durable Block Storage Service Based on CephBuild an High-Performance and High-Durable Block Storage Service Based on Ceph
Build an High-Performance and High-Durable Block Storage Service Based on CephRongze Zhu
 
Deep Dive on Amazon EC2 Instances (March 2017)
Deep Dive on Amazon EC2 Instances (March 2017)Deep Dive on Amazon EC2 Instances (March 2017)
Deep Dive on Amazon EC2 Instances (March 2017)Julien SIMON
 
SR-IOV+KVM on Debian/Stable
SR-IOV+KVM on Debian/StableSR-IOV+KVM on Debian/Stable
SR-IOV+KVM on Debian/Stablejuet-y
 
Fast Userspace OVS with AF_XDP, OVS CONF 2018
Fast Userspace OVS with AF_XDP, OVS CONF 2018Fast Userspace OVS with AF_XDP, OVS CONF 2018
Fast Userspace OVS with AF_XDP, OVS CONF 2018Cheng-Chun William Tu
 
SoC Idling for unconf COSCUP 2016
SoC Idling for unconf COSCUP 2016SoC Idling for unconf COSCUP 2016
SoC Idling for unconf COSCUP 2016Koan-Sin Tan
 

Similar to Linux PM Framework Mapping CPU Power Modes (20)

Tizen Developer Conference 2017 San Francisco - Tizen Power Management Servic...
Tizen Developer Conference 2017 San Francisco - Tizen Power Management Servic...Tizen Developer Conference 2017 San Francisco - Tizen Power Management Servic...
Tizen Developer Conference 2017 San Francisco - Tizen Power Management Servic...
 
Summit demystifying systemd1
Summit demystifying systemd1Summit demystifying systemd1
Summit demystifying systemd1
 
VMworld 2016: vSphere 6.x Host Resource Deep Dive
VMworld 2016: vSphere 6.x Host Resource Deep DiveVMworld 2016: vSphere 6.x Host Resource Deep Dive
VMworld 2016: vSphere 6.x Host Resource Deep Dive
 
Advanced Diagnostics 2
Advanced Diagnostics 2Advanced Diagnostics 2
Advanced Diagnostics 2
 
Docker, JVM and CPU
Docker, JVM and CPUDocker, JVM and CPU
Docker, JVM and CPU
 
[IDF'15 SF] RPCS001 — Overclocking 6th Generation Intel® Core™ Processors!
[IDF'15 SF] RPCS001 — Overclocking 6th Generation Intel® Core™ Processors![IDF'15 SF] RPCS001 — Overclocking 6th Generation Intel® Core™ Processors!
[IDF'15 SF] RPCS001 — Overclocking 6th Generation Intel® Core™ Processors!
 
Nvidia tegra K1 Presentation
Nvidia tegra K1 PresentationNvidia tegra K1 Presentation
Nvidia tegra K1 Presentation
 
WAN - trends and use cases
WAN - trends and use casesWAN - trends and use cases
WAN - trends and use cases
 
Build an High-Performance and High-Durable Block Storage Service Based on Ceph
Build an High-Performance and High-Durable Block Storage Service Based on CephBuild an High-Performance and High-Durable Block Storage Service Based on Ceph
Build an High-Performance and High-Durable Block Storage Service Based on Ceph
 
Arm7 architecture
Arm7 architectureArm7 architecture
Arm7 architecture
 
The Spectre of Meltdowns
The Spectre of MeltdownsThe Spectre of Meltdowns
The Spectre of Meltdowns
 
Deep Dive on Amazon EC2 Instances (March 2017)
Deep Dive on Amazon EC2 Instances (March 2017)Deep Dive on Amazon EC2 Instances (March 2017)
Deep Dive on Amazon EC2 Instances (March 2017)
 
ceph-barcelona-v-1.2
ceph-barcelona-v-1.2ceph-barcelona-v-1.2
ceph-barcelona-v-1.2
 
Ceph barcelona-v-1.2
Ceph barcelona-v-1.2Ceph barcelona-v-1.2
Ceph barcelona-v-1.2
 
Cisco-6500-v1.0-R
Cisco-6500-v1.0-RCisco-6500-v1.0-R
Cisco-6500-v1.0-R
 
ARM AAE - System Issues
ARM AAE - System IssuesARM AAE - System Issues
ARM AAE - System Issues
 
SR-IOV+KVM on Debian/Stable
SR-IOV+KVM on Debian/StableSR-IOV+KVM on Debian/Stable
SR-IOV+KVM on Debian/Stable
 
Fast Userspace OVS with AF_XDP, OVS CONF 2018
Fast Userspace OVS with AF_XDP, OVS CONF 2018Fast Userspace OVS with AF_XDP, OVS CONF 2018
Fast Userspace OVS with AF_XDP, OVS CONF 2018
 
Arm architecture overview
Arm architecture overviewArm architecture overview
Arm architecture overview
 
SoC Idling for unconf COSCUP 2016
SoC Idling for unconf COSCUP 2016SoC Idling for unconf COSCUP 2016
SoC Idling for unconf COSCUP 2016
 

Recently uploaded

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 

Recently uploaded (20)

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 

Linux PM Framework Mapping CPU Power Modes

  • 2. Power Modes • DFS • Halt • Doze • Sleep • Hibernate
  • 3. Linux PM Framework • CPUIdle – Idle threads trigger sleep states (C0, C1, …) • CPUFreq – CPU Frequency scaling (CPU DFS) • CPU DVFS • CPU Hotplug • DDR DVFS • Peripheral DVFS • Suspend (save to RAM) • Hibernate (save to Disk)
  • 5. CPUIdle • For UP system, support 2 idle stetes – C0: CPU WFI – C1: CPU WFI and DDR self-refresh • For SMP system, only support 1 idle state – C0: CPU WFI • CPUIdle governors – The menu governor can jump into a deeper state immediately. (C0 -> C2) – The ladder governor enters the lightest state first, and move on to the next deeper state if a sleep was long enough. (C0 -> C1 -> C2) • Driver – drivers/cpuidle/cpuidle-xxxxxx.c
  • 6. CPUIdle Example # cat /sys/devices/system/cpu/cpu0/cpuidle/state0/desc Wait for interrupt ; Shows the description of the state # cat /sys/devices/system/cpu/cpu0/cpuidle/state0/disable 0 # cat /sys/devices/system/cpu/cpu0/cpuidle/state0/latency 1 ; Shows the wakeup latency for this state. # cat /sys/devices/system/cpu/cpu0/cpuidle/state0/name WFI ; Shows the name of the state # cat /sys/devices/system/cpu/cpu0/cpuidle/state0/power 4294967295 ; Shows the typical power consumed when CPU enters this state in mW # cat /sys/devices/system/cpu/cpu0/cpuidle/state0/time 79420040 ; Shows the amount of time spent in this idle state in usec. # cat /sys/devices/system/cpu/cpu0/cpuidle/state0/usage 14417 ; Shows the count of number of times this idle state has been entered
  • 7. CPUFreq • CPU Frequency Scaling • CPUFreq governors – Conservative: Dynamically switch between CPU(s) available if at 75% load – Ondemand: Dynamically switch between CPU(s) available if at 95% load – Performance: Run the CPU at maximum frequency – Powersave: Run the CPU at the minimum frequency – Userspace: Run the CPU at user specified frequencies • Driver – drivers/cpufreq/xxxxxx-cpufreq.c
  • 8. CPUFreq Example # cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq 800 # cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq 100 # cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor Userspace # echo 700 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed # cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq 700 # mhz 700 MHz, 1.4286 nanosec clock
  • 9. CPU DVFS • CPUFreq + Voltage Layer • Regulator Framework – Regulates the output power from input power • Voltage Control • Current Limiting • Switch output power ON/OFF VDD1 1100 ~ 1200 mV CPU_1V1 VDD2 1350 ~ 1500 mV DRAM_1V5 VIO 3300 mV D.3.3V_G VDDCTRL 1100 mV SOC_1V1 LDO1 1800 mV Reserved LDO2 2500 mV Reserved LDO3 1100 mV SB_1.1V LDO4 1100 mV Reserved LDO5 3300 mV SB_3.3V LDO6 3300 mV Reserved LDO7 2500 mV CHIP_2.5V LDO8 1000 ~ 3300 mV SD_IF_VDD
  • 10. Regulator Framework • Regulator APIs struct regulator * regulator_get (struct device *dev, const char *id); regulator_put(regulator); int regulator_set_voltage(struct regulator *regulator, int min_uV, int max_uV); int regulator_get_voltage(struct regulator *regulator); int regulator_enable(regulator); int regulator_disable(regulator); int regulator_force_disable(regulator); int regulator_is_enabled(regulator); Reference: https://www.kernel.org/doc/htmldocs/regulator.html
  • 11. CPU DVFS Example # cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq 800 # cat /sys/class/regulator/regulator.3/microvolts 1200000 ; Change CPU speed to 700 MHz # echo 700 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed # cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq 700 # cat /sys/class/regulator/regulator.3/microvolts 1187500
  • 12. CPU Hotplug • CPU hotplug is one approach for bring up / shutdown the secondary CPU Cores • The code can be used by kernel “suspend” and “hibernate”. • From a power consumption point of view, the CPU hotplug feature might not be very useful for a SMP system.
  • 13. CPU Hotplug Example # cat /sys/devices/system/cpu/online 0-2 # cat /sys/devices/system/cpu/offline # echo 0 > /sys/devices/system/cpu/cpu2/online [ 7732.890000] CPU2: shutdown # cat /sys/devices/system/cpu/online 0-1 # cat /sys/devices/system/cpu/offline 2 # echo 1 > /sys/devices/system/cpu/cpu2/online [ 7759.660000] CPU2: Booted secondary processor # cat /sys/devices/system/cpu/online 0-2
  • 15. DevFreq • DVFS framework for non-CPU device • Clock Tree
  • 16. Clock Tree • Clock APIs • Device • Driver – arch/arm/mach-xxxxxx/clock.c
  • 19. Example • Lightweight Suspend (DOZE Mode) # echo suspend > /sys/power/state • Suspend (SLEEP Mode) # echo mem > /sys/power/state • Hibernate (HIBERNATE Mode) # echo disk > /sys/power/state