+ All Categories
Home > Documents > Power Debugging Inside Linaro

Power Debugging Inside Linaro

Date post: 15-Jul-2015
Category:
Upload: flinunix-flin
View: 127 times
Download: 1 times
Share this document with a friend
Popular Tags:

of 17

Transcript

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]


Recommended