Date post: | 15-Jul-2015 |
Category: |
Documents |
Upload: | flinunix-flin |
View: | 127 times |
Download: | 1 times |
of 17
Powerdebugging inside LinaroAmit Kucheria Tech Lead Power Management Working Grouphttps://wiki.linaro.org/WorkingGroups/PowerManagement/
Linaro?Source Consolidation Patches Architecture consolidation Optimizations Tools Evaluation builds
PM WG: Story so far...
1 full Linaro cycle Focus on consolidation and tools Some kernel work...Feature Export clock tree to debugfs Cpufreq driver Cpuidle driverCPU Hotplug
Freescale i.MX51 Y Y WIPNA
TI OMAP3
TI OMAP4
Samsung Orion Y Y WIPY
ST-E UX8500 Y Y NY
Y WIP YNA
Y WIP NY
PM WG: Story so far...
Some tools work
Powertop Powerdebug Thermal management CPU Hotplug
And some experiments
Survey
Problem StatementPower ManagerUser or Kernel (TBD) In kernel upstream
Thermal Manager
Device Drivers
CPUidleGovernor
DVFS / CPUfreqPolicy
In dev for upstream To be designed
Generic Kernel (/kernel, /driver, etc)
LDM
Runtime PM
platform_devicepdata
CPU hotplug
PM QoS
LDM suspend hooks(begin/end, prepare/finish, enter)
PM runtime hooks(suspend, resume, idle)
CPU hotplug
CPUidle
CPUfreq
PM Core SOC specific - SRAM idle - WFI Kernel (/arch/arm, /arch/arm/mach)- suspend and idle entry
SOC PM layerSoC abstraction(if platform supported) devlat tput Freq MPU lat
opp
Clock fwkHardware
clockdomain SOC HW
powerdomain
Regulator PMIC
Problem statement
Complexity is growing fast and it is hard to tune a product for optimum battery life
Good old daysUser
Device Drivers LDMKernel
LDMsuspend hooks SRAM idle, WFI
Clock FrameworkHardware
SoC HW
PMIC
Generic Vendor code code
P V .fUser
2
Device Drivers LDMKernel
LDMsuspend hooks SRAM idle, WFI
CPUfreq
Clock Framework SoC HW PMIC
Hardware
Generic Vendor code code
Corralling regulators, idle states and offering latency guaranteesUser
Device Drivers LDMKernel
PM_QoS
LDMsuspend hooks SRAM idle, WFI
CPUidle
CPUfreq
Clock Framework SoC HW
Regulator Framework PMIC
Hardware
Generic Vendor code code
Many hands make light workUser
CPU hotplug
Device Drivers LDM LDMsuspend hooks SRAM idle, WFI
PM_QoS
Kernel
CPUidle
CPUfreq
Clock Framework SoC HW
Regulator Framework PMIC
Hardware
Generic Vendor code code
Abstracting clock- & power-domain handling for peripheralsUser
CPU hotplug Runtime PM
Device Drivers LDM LDMsuspend hooks SRAM idle, WFI
PM_QoS
Kernel
CPUidle
CPUfreq
Clock Framework SoC HW
Regulator Framework PMIC
Hardware
Generic Vendor code code
Performance points of devicesUser
CPU hotplug Runtime PM
Device Drivers LDM LDMsuspend hooks SRAM idle, WFI
PM_QoS
Kernel
CPUidle
CPUfreq
OPP
Clock Framework
Regulator Framework PMIC
Hardware
SoC HW
Generic Vendor code code
Warmth at last!User
Thermal manager Vendor policy
CPU hotplug Runtime PM Thermal Framework CPUfreq OPP
Device Drivers LDM LDMsuspend hooks SRAM idle, WFI
PM_QoS
Kernel
CPUidle
Clock Framework
Regulator Framework PMIC
Hardware
SoC HW
Generic Vendor code code
Focus areas for Linaro PM WGUser
Thermal manager Vendor policy
CPU hotplug Runtime PM
Device Drivers LDM LDMsuspend hooks SRAM idle, WFI
PM_QoS
Kernel
CPUidle
CPUfreq
OPP
Clock Framework
powerdebug
Regulator Framework PMIC
Hardware
SoC HWLinaro focus
Generic Vendor code code
Remember!Power ManagerUser or Kernel (TBD) In kernel upstream
Thermal Manager
Device Drivers
CPUidleGovernor
DVFS / CPUfreqPolicy
In dev for upstream To be designed
Generic Kernel (/kernel, /driver, etc)
LDM
Runtime PM
platform_devicepdata
CPU hotplug
PM QoS
LDM suspend hooks(begin/end, prepare/finish, enter)
PM runtime hooks(suspend, resume, idle)
CPU hotplug
CPUidle
CPUfreq
PM Core SOC specific - SRAM idle - WFI Kernel (/arch/arm, /arch/arm/mach)- suspend and idle entry
SOC PM layerSoC abstraction(if platform supported) devlat tput Freq MPU lat
opp
Clock fwkHardware
clockdomain SOC HW
powerdomain
Regulator PMIC
We're just getting started...
https://wiki.linaro.org/WorkingGroups/PowerManagement/ http://git.linaro.org [email protected]