SlideShare a Scribd company logo
Krzysztof Kozlowski
k.kozlowski@samsung.com
Samsung R&D Institute Poland
 Overview and goals
 CPUfreq (with clock down)
 Run-time PM and power domains
 SoC low power states
 CPU idle drivers
 Devfreq
 Summary
 Limit the consumption of energy by mobile device
 Do not hurt performance (at least to some extend)
 The speech will focus on ARM architecture and
Samsung’s Exynos System-on-Chip family, although
ideas are not limited to Exynos
 Target devices: smartphones, tablets, wearables
 Mainline Linux kernel is changing very fast
◦ Some details about specific kernel drivers may become
obsolete soon
◦ Details as for current mainline kernel: 3.16
 All measurements were done on development devices:
◦ Custom kernels
◦ Custom operating systems
 They are not representative for market/end products
 Sometimes measurements on these devices may not
be even close to market products
 Many measurements were done in specific custom
configuration, very different from market product, e.g.:
◦ No CPU idle driver, no CPUfreq driver
◦ Booted to init=/bin/sh
 Measured on:
◦ Trats2, smartphone (Exynos 4412, 4 cores,
freq 200-1400 MHz)
◦ Gear1-like wearable (Exynos 4212, 2 cores, 200-1400 MHz)
◦ Exynos 3250 development board (2 cores, 100-1000 MHz)
 Kernel used:
◦ Exynos 4212 and 4412 : linux-next (next-20140804)
◦ Exynos 3250: internal Linux kernel tree 3.10
 Lack of full support in mainline
 Ondemand governor adjusts the frequency and voltage
to current load
 Specific conditions to embedded world – one
frequency and voltage for whole cluster
◦ On most SoCs: one clock frequency/voltage for all CPUs
◦ Except big.LITTLE (e.g. 2 clusters on quad-core Exynos Octa)
 Dual cluster SoCs have big.LITTLE
CPUfreq driver
Photo by Pauli Rautakorpi
 Separate CPUfreq drivers for each SoC
 Moving toward one generic cpufreq-cpu0 driver
 cpufreq-cpu0 requires:
◦ Clock to operate on (provided by clock driver)
◦ Optionally voltage regulator (provided by regulator driver)
◦ Table of Operating Performance Points from Device Tree
 OPP is a tuple of frequency and voltage
 Clock/regulator/OPP frameworks add necessary
abstraction layer and make cpufreq-cpu0 a generic
solution
 Reduces the frequency upon entering WFI or WFE
instruction (Wait for Interrupt/Event)
◦ All cores must be idle
 Behaves like a hardware ondemand CPUfreq governor
◦ But only for clock frequency (voltages remain untouched)
 Supported by most of Exynos SoCs
◦ As part of clock driver for Exynos 3250, Exynos 4 and Exynos
5250 [1]
 Measurements in idle mode (basic CPU idle – WFI), no load
 No benefits if CPUfreq governor is ondemand which is quite obvious
 ARMCLK cannot get below minimal frequency used in CPUfreq driver
 Ondemand CPUfreq reduces also ARM voltage
Board SoC Frequency
[MHz]
Idle [mA] Idle + clock down
[mA]
Trats2 Exynos 4412
1400 198 170
200 115 114
Gear1-like Exynos 4212
1400 102 82
200 60 59
Dev-board Exynos 3250
1000 36.2 26.7
100 19.2 18.5
0
50
100
150
200
250
current[mA]
ARMCLK clk down: energy consumption
Idle
Idle + clock down
 Putting devices into low power states when not used
◦ Optionally: automatically delayed suspends
 Needs support in device drivers
◦ Driver specifies when it is working and idle
 Usage counter (pm_runtime_get()/put())
 Time of last activities (pm_runtime_mark_last_busy())
◦ Driver implements runtime suspend and resume callbacks
 Local power control, powered independently
 Example power domains:
◦ CPU-s
◦ Multi-Format Codec (MFC)
◦ G3D (e.g. Mali)
◦ LCD
◦ Image Signal Processor
◦ Camera
 Linux offers a generic power domain framework [2]
◦ Used by SH-Mobile and Exynos
 Other vendors implement this on their own
 Multiple Linux devices can be attached to a domain
SoC
CPU0
CPU1
MFC
Camera
Camera
JPEG
TV
Mixer
Video
Processor
HDMI
Power Domain Devices
 Integrates with runtime PM
◦ If all attached devices have been suspended, power down
whole domain
 Differences in energy consumption:
Board SoC All domains
enabled
permanently [mA]
Power domain
runtime PM
[mA]
Diff [%]
Trats2 Exynos 4412 124 114 -8%
Dev-board Exynos 3250 24.7 18.5 -25%
 Measurements in idle mode (basic CPU idle - WFI), no load
 When in idle, enter low power state to save energy
◦ Responsible: CPU idle framework and drivers
 Wait for Interrupt (WFI), basic idle state
 Various SoCs support deeper low power states
◦ Msm: retention, standalone power collapse, power collapse
◦ Exynos: ARM Off TOP Running (AFTR), W-AFTR, Low Power
Audio playback (LPA)
 W-AFTR and LPA extends the AFTR low power mode
 Usually they have higher latency for enter and leave
◦ Enter deeper state only if we won’t be awaken right away
 System-level states
◦ Whole system must be prepared
1. CPU[1-n] must be powered off
2. Then CPU0 triggers entering deep low power state
 ARM Off TOP Running (AFTR)
◦ Cortex core is power gated (power supplied but internally
gated)
◦ Most of other modules are powered on (e.g. Audio, MMC,
CoreSight, USB, I2C, UART etc.)
 W-AFTR (on Exynos 3250)
◦ AFTR + power gating everything that can be power gated
◦ Except Dynamic Memory Controller, DDR, RTC
◦ Fast wake-up
 Low Power Audio playback (LPA, on other Exynos SoCs)
◦ AFTR + power gating everything that can be power gated
◦ Contents of L2 cache and TOP modules are preserved
(retention)
◦ Audio related blocks are on
 Sleep
◦ Power not supplied (regulators turned off)
◦ Only ALIVE and RTC blocks are on
◦ Entered with Suspend-to-RAM
Low power state Subsystem Requires additional drivers
WFI Scheduler (idle loop) No, built-in
AFTR, W-AFTR,
LPA
CPU idle
CPU idle driver and support
for board (arch/arm/mach-*)
Sleep Suspend
support for board
(arch/arm/mach-*)
 From CPU idle perspective: states are „coupled”
◦ Entering AFTR/W-AFTR/LPA depends on powering down all
other CPUs[1-n]
◦ If only CPU0 is left on, then CPU idle triggers low power state
 User space may hot unplug idle CPUs[1-n]
◦ echo 0 > /sys/bus/cpu/devices/cpu1/online
◦ E.g. mpdecision daemon for msm
 Kernel may synchronize entering idle states
◦ Coupled CPU idle drivers
 echo mem > /sys/power/state
Sync
Wait for CPU1 to
power down
Power
down
Enter AFTR
or WAFTR
CPU0
awake
Sync
Wait for CPU1 to
power up
Power
down
AFTR or
WAFTR
Woken
up
Woken up
by CPU0
IRQ
Wake
CPU1
 big.LITTLE
◦ Suspend whole cluster
◦ Supported Versatile TC2 (Linux 3.16) and Exynos 5420 (next)
 Exynos AFTR
◦ Currently only for Exynos 4210 and Exynos 5250
◦ Requires manual hot unplug of CPU1 to work
 Coupled CPU idle driver for Exynos (CPU1 off, CPU0
AFTR)
◦ On going work, patch by Daniel Lezcano [3]
 Due to lack of support in mainline all measurements
were done on internal Linux kernel tree 3.10
 Development board with Exynos 3250 (2 cores,
100-1000 MHz)
 The goal of measurements is to show overall
differences between CPU low power states
 Workload: simple computation tasks (work-sleep-
work), mainly used to test scheduler
 Tested configurations:
◦ CPUs enter only WFI (no CPU idle driver)
◦ Power down CPU1 from userspace permanently, CPU0 enters
WFI (no CPU idle driver)
◦ Coupled CPU idle: CPU1 power off, CPU0 AFTR
◦ Coupled CPU idle: CPU1 power off, CPU0 AFTR or W-AFTR
 W-AFTR is entered if certain conditions are met. If no, enter AFTR.
 Conditions:
 Camera, G3D, MFC power domains are off
 Certain bus clocks are gated
 MMC is idle
CPU frequency 2 tasks 3 tasks 4 tasks
WFI (CPU0 + CPU1) 200 MHz 200-600 MHz 200-600 MHz
CPU1 powered off 500 MHz 300-900 MHz 400-1000 MHz
25%
23%
35%35%
44%
46%
0%
5%
10%
15%
20%
25%
30%
35%
40%
45%
50%
2 3 4
TotalCPUload[%]
No. tasks
Total CPU usage, during load
WFI (CPU0 + CPU1)
CPU0 WFI + CPU1 always off
22.6
26
28
23.8
26.4
20
21
22
23
24
25
26
27
28
29
2 3 4
current[mA]
No. tasks
Energy consumption, during load
WFI (CPU0 + CPU1)
CPU0 WFI + CPU1 always off
 What about coupled CPU idle drivers (CPU1 off, CPU0
AFTR or W-AFTR)?
◦ No differences because the load prevented entering deeper
idle states
 But a new driver which powers off CPU1 also when
CPU0 is busy makes sense
◦ Workload consolidation in scheduler could also help
(increased idle time of CPU1)
◦ Already discussed and some works are in progress [4]
 Power-aware scheduling [5]
 Sched packing [6]
 Workload consolidation and CPU ConCurrency [7]
CPU idle driver Idle [mA] Diff against WFI
WFI (CPU0 + CPU1) 18.5
CPU0 WFI + CPU1 always off 18.3 -1.0%
CPU idle, coupled, OFF+AFTR 17.8 -3.8%
CPU idle, coupled, OFF+AFTR/WAFTR 9.8 -47.0%
Suspend-to-RAM 0.46
 No load
 Exynos 3250 CPU @100 MHz
0
2
4
6
8
10
12
14
16
18
20
WFI (CPU0 + CPU1) CPU0 WFI + CPU1
always off
Coupled,
OFF+AFTR
Coupled,
OFF+AFTR/WAFTR
Suspend-to-RAM
current[mA]
CPU idle: energy consumption, idle
 Dynamic Voltage and Frequency Scaling for devices
◦ e.g. Memory bus, MFC, G2D, ISP, SD/MMC
 Governors similar to CPUfreq (ondemand etc.)
◦ Current load may be taken from device performance counters
 Exynos: number of read and write operations in Dynamic Memory
Controller
 Mainline: only drivers for Exynos 4 and Exynos 5250
◦ ... but only for Exynos 5250 is working
 Due to lack of support in mainline all measurements
were done on internal Linux kernel tree 3.10
 Development board with Exynos 3250 (2 cores,
100-1000 MHz)
 The goal of measurements is to show overall difference
that devfreq makes
Possible values for Exynos 3250
development board
Min Max
INT voltage 0.80 V 1.00 V
MIF voltage 0.85 V 1.00 V
DMC clock 50 MHz 400 MHz
LEFT/RIGHT buses clock 50 MHz 133 MHz
 No devfreq means that highest voltages and clock rates
are chosen for:
◦ bus clocks
◦ INT and MIF regulators supplying power to many SoC modules
CPU idle driver No devfreq [mA] With devfreq [mA] Diff [%]
WFI (CPU0 + CPU1) 28.9 18.5 -36%
CPU0 WFI + CPU1
always off
28.6 18.3 -36%
CPU idle, coupled,
OFF+AFTR
27.9 17.8 -36%
CPU idle, coupled,
OFF+AFTR/WAFTR
16.3 9.8 -40%
 No load
 Exynos 3250 CPU @100 MHz
0
5
10
15
20
25
30
35
WFI (CPU0 + CPU1) CPU0 WFI + CPU1
always off
Coupled,
OFF+AFTR
Coupled,
OFF+AFTR/WAFTR
current[mA]
Devfreq: energy consumption, idle
devfreq
no devfreq
 Linux kernel has a number of features for reducing
energy usage
◦ Unfortunately many drivers are not yet present in mainline
 Most benefits come with:
◦ Frequency and voltage scaling (CPUfreq, devfreq)
◦ Entering low power CPU states (CPU idle)
◦ Developing good drivers
 For external resources use abstraction provided by the kernel (e.g.
Common Clock Framework, regulators)
 Runtime PM (if it is applicable)
 Still a lot of work to do
◦ Drivers: CPU idle, devfreq
◦ Integration between scheduler, CPUfreq and CPU idle
◦ Mobile devices are somehow different
 Energy consumption is an important factor (How often do you
have to charge your phone?)
 Mobile device is mostly idle (more opportunities to sleep)
 Consolidating workload makes sense (to some extend)
Thank you!
Any questions?
 [1] Common Clock Framework drivers for Exynos 4, 3250 and
5250
drivers/clk/samsung/clk-exynos*.c
 [2] Generic Device Power Domains
include/linux/om_domain.h
 [3] Coupled cpuidle driver for Exynos
Exynos4: cpuidle: support dual CPUs with AFTR state
http://thread.gmane.org/gmane.linux.power-
management.general/44248
 [4] Toward a more power-efficient scheduler, Jonathan Corbet
http://lwn.net/Articles/546664/
 [5] Morten Rasmussen
 Power-aware scheduling v2
https://lkml.org/lkml/2013/10/11/547
 sched: Energy cost model for energy-aware scheduling
https://lkml.org/lkml/2014/5/23/621
 [6] Sched: packing tasks (and newer works), Vincent Guittot
https://lkml.org/lkml/2013/10/18/121
 [7] A new CPU load metric for power-efficient scheduler: CPU
ConCurrency, Yuyang Du
https://lkml.org/lkml/2014/6/25/162

More Related Content

What's hot

Virtualization Support in ARMv8+
Virtualization Support in ARMv8+Virtualization Support in ARMv8+
Virtualization Support in ARMv8+
Aananth C N
 
Rootlinux17: An introduction to Xen Project Virtualisation
Rootlinux17:  An introduction to Xen Project VirtualisationRootlinux17:  An introduction to Xen Project Virtualisation
Rootlinux17: An introduction to Xen Project Virtualisation
The Linux Foundation
 
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
 
Embedded Android : System Development - Part II (HAL)
Embedded Android : System Development - Part II (HAL)Embedded Android : System Development - Part II (HAL)
Embedded Android : System Development - Part II (HAL)
Emertxe Information Technologies Pvt Ltd
 
LCA14: LCA14-306: CPUidle & CPUfreq integration with scheduler
LCA14: LCA14-306: CPUidle & CPUfreq integration with schedulerLCA14: LCA14-306: CPUidle & CPUfreq integration with scheduler
LCA14: LCA14-306: CPUidle & CPUfreq integration with scheduler
Linaro
 
Android Virtualization: Opportunity and Organization
Android Virtualization: Opportunity and OrganizationAndroid Virtualization: Opportunity and Organization
Android Virtualization: Opportunity and Organization
National Cheng Kung University
 
Embedded Android : System Development - Part IV
Embedded Android : System Development - Part IVEmbedded Android : System Development - Part IV
Embedded Android : System Development - Part IV
Emertxe Information Technologies Pvt Ltd
 
Android for Embedded Linux Developers
Android for Embedded Linux DevelopersAndroid for Embedded Linux Developers
Android for Embedded Linux Developers
Opersys inc.
 
LAS16-307: Benchmarking Schedutil in Android
LAS16-307: Benchmarking Schedutil in AndroidLAS16-307: Benchmarking Schedutil in Android
LAS16-307: Benchmarking Schedutil in Android
Linaro
 
Fosdem 18: Securing embedded Systems using Virtualization
Fosdem 18: Securing embedded Systems using VirtualizationFosdem 18: Securing embedded Systems using Virtualization
Fosdem 18: Securing embedded Systems using Virtualization
The Linux Foundation
 
Process Scheduler and Balancer in Linux Kernel
Process Scheduler and Balancer in Linux KernelProcess Scheduler and Balancer in Linux Kernel
Process Scheduler and Balancer in Linux Kernel
Haifeng Li
 
QEMU and Raspberry Pi. Instant Embedded Development
QEMU and Raspberry Pi. Instant Embedded DevelopmentQEMU and Raspberry Pi. Instant Embedded Development
QEMU and Raspberry Pi. Instant Embedded Development
GlobalLogic Ukraine
 
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
The Linux Foundation
 
LCU14 500 ARM Trusted Firmware
LCU14 500 ARM Trusted FirmwareLCU14 500 ARM Trusted Firmware
LCU14 500 ARM Trusted Firmware
Linaro
 
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...Opersys inc.
 
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
National Cheng Kung University
 
Bootloaders (U-Boot)
Bootloaders (U-Boot) Bootloaders (U-Boot)
Bootloaders (U-Boot)
Omkar Rane
 
ACPI Debugging from Linux Kernel
ACPI Debugging from Linux KernelACPI Debugging from Linux Kernel
ACPI Debugging from Linux Kernel
SUSE Labs Taipei
 
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
Linaro
 
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to EmbeddedLAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
Linaro
 

What's hot (20)

Virtualization Support in ARMv8+
Virtualization Support in ARMv8+Virtualization Support in ARMv8+
Virtualization Support in ARMv8+
 
Rootlinux17: An introduction to Xen Project Virtualisation
Rootlinux17:  An introduction to Xen Project VirtualisationRootlinux17:  An introduction to Xen Project Virtualisation
Rootlinux17: An introduction to Xen Project Virtualisation
 
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
 
Embedded Android : System Development - Part II (HAL)
Embedded Android : System Development - Part II (HAL)Embedded Android : System Development - Part II (HAL)
Embedded Android : System Development - Part II (HAL)
 
LCA14: LCA14-306: CPUidle & CPUfreq integration with scheduler
LCA14: LCA14-306: CPUidle & CPUfreq integration with schedulerLCA14: LCA14-306: CPUidle & CPUfreq integration with scheduler
LCA14: LCA14-306: CPUidle & CPUfreq integration with scheduler
 
Android Virtualization: Opportunity and Organization
Android Virtualization: Opportunity and OrganizationAndroid Virtualization: Opportunity and Organization
Android Virtualization: Opportunity and Organization
 
Embedded Android : System Development - Part IV
Embedded Android : System Development - Part IVEmbedded Android : System Development - Part IV
Embedded Android : System Development - Part IV
 
Android for Embedded Linux Developers
Android for Embedded Linux DevelopersAndroid for Embedded Linux Developers
Android for Embedded Linux Developers
 
LAS16-307: Benchmarking Schedutil in Android
LAS16-307: Benchmarking Schedutil in AndroidLAS16-307: Benchmarking Schedutil in Android
LAS16-307: Benchmarking Schedutil in Android
 
Fosdem 18: Securing embedded Systems using Virtualization
Fosdem 18: Securing embedded Systems using VirtualizationFosdem 18: Securing embedded Systems using Virtualization
Fosdem 18: Securing embedded Systems using Virtualization
 
Process Scheduler and Balancer in Linux Kernel
Process Scheduler and Balancer in Linux KernelProcess Scheduler and Balancer in Linux Kernel
Process Scheduler and Balancer in Linux Kernel
 
QEMU and Raspberry Pi. Instant Embedded Development
QEMU and Raspberry Pi. Instant Embedded DevelopmentQEMU and Raspberry Pi. Instant Embedded Development
QEMU and Raspberry Pi. Instant Embedded Development
 
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
 
LCU14 500 ARM Trusted Firmware
LCU14 500 ARM Trusted FirmwareLCU14 500 ARM Trusted Firmware
LCU14 500 ARM Trusted Firmware
 
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
 
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
 
Bootloaders (U-Boot)
Bootloaders (U-Boot) Bootloaders (U-Boot)
Bootloaders (U-Boot)
 
ACPI Debugging from Linux Kernel
ACPI Debugging from Linux KernelACPI Debugging from Linux Kernel
ACPI Debugging from Linux Kernel
 
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
 
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to EmbeddedLAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
 

Viewers also liked

SoC Idling for unconf COSCUP 2016
SoC Idling for unconf COSCUP 2016SoC Idling for unconf COSCUP 2016
SoC Idling for unconf COSCUP 2016
Koan-Sin Tan
 
Q2.12: Idling ARMs in a busy world: Linux Power Management for ARM Multiclust...
Q2.12: Idling ARMs in a busy world: Linux Power Management for ARM Multiclust...Q2.12: Idling ARMs in a busy world: Linux Power Management for ARM Multiclust...
Q2.12: Idling ARMs in a busy world: Linux Power Management for ARM Multiclust...
Linaro
 
Kernel Recipes 2015: Introduction to Kernel Power Management
Kernel Recipes 2015: Introduction to Kernel Power ManagementKernel Recipes 2015: Introduction to Kernel Power Management
Kernel Recipes 2015: Introduction to Kernel Power Management
Anne Nicolas
 
LCA13: CPUIDLE: One driver to rule them all?
LCA13: CPUIDLE: One driver to rule them all?LCA13: CPUIDLE: One driver to rule them all?
LCA13: CPUIDLE: One driver to rule them all?
Linaro
 
Android power management
Android power managementAndroid power management
Android power managementJerrin George
 
Q2.12: Research Update on big.LITTLE MP Scheduling
Q2.12: Research Update on big.LITTLE MP SchedulingQ2.12: Research Update on big.LITTLE MP Scheduling
Q2.12: Research Update on big.LITTLE MP Scheduling
Linaro
 

Viewers also liked (6)

SoC Idling for unconf COSCUP 2016
SoC Idling for unconf COSCUP 2016SoC Idling for unconf COSCUP 2016
SoC Idling for unconf COSCUP 2016
 
Q2.12: Idling ARMs in a busy world: Linux Power Management for ARM Multiclust...
Q2.12: Idling ARMs in a busy world: Linux Power Management for ARM Multiclust...Q2.12: Idling ARMs in a busy world: Linux Power Management for ARM Multiclust...
Q2.12: Idling ARMs in a busy world: Linux Power Management for ARM Multiclust...
 
Kernel Recipes 2015: Introduction to Kernel Power Management
Kernel Recipes 2015: Introduction to Kernel Power ManagementKernel Recipes 2015: Introduction to Kernel Power Management
Kernel Recipes 2015: Introduction to Kernel Power Management
 
LCA13: CPUIDLE: One driver to rule them all?
LCA13: CPUIDLE: One driver to rule them all?LCA13: CPUIDLE: One driver to rule them all?
LCA13: CPUIDLE: One driver to rule them all?
 
Android power management
Android power managementAndroid power management
Android power management
 
Q2.12: Research Update on big.LITTLE MP Scheduling
Q2.12: Research Update on big.LITTLE MP SchedulingQ2.12: Research Update on big.LITTLE MP Scheduling
Q2.12: Research Update on big.LITTLE MP Scheduling
 

Similar to Kernel Features for Reducing Power Consumption on Embedded Devices

Nvidia tegra K1 Presentation
Nvidia tegra K1 PresentationNvidia tegra K1 Presentation
Nvidia tegra K1 Presentation
ANURAG SEKHSARIA
 
embedded system introduction to microcontrollers
embedded system introduction to microcontrollersembedded system introduction to microcontrollers
embedded system introduction to microcontrollers
BarER4
 
Power management
Power managementPower management
Power management
Scott Shu
 
Computer Architecture and Organization
Computer Architecture and OrganizationComputer Architecture and Organization
Computer Architecture and Organization
ssuserdfc773
 
Iot Workshop NITT 2015
Iot Workshop NITT 2015Iot Workshop NITT 2015
Iot Workshop NITT 2015
Srivignessh Pss
 
ARM - Advance RISC Machine
ARM - Advance RISC MachineARM - Advance RISC Machine
ARM - Advance RISC Machine
EdutechLearners
 
arm
armarm
IDF'16 San Francisco - Overclocking Session
IDF'16 San Francisco - Overclocking SessionIDF'16 San Francisco - Overclocking Session
IDF'16 San Francisco - Overclocking Session
HWBOT
 
Microcontroller from basic_to_advanced
Microcontroller from basic_to_advancedMicrocontroller from basic_to_advanced
Microcontroller from basic_to_advanced
Imran Sheikh
 
ICTCoreCh11
ICTCoreCh11ICTCoreCh11
ICTCoreCh11garcons0
 
PIC Introduction and explained in detailed
PIC Introduction and explained in detailedPIC Introduction and explained in detailed
PIC Introduction and explained in detailed
Ankita Tiwari
 
Tutorial Arach N!D
Tutorial Arach N!DTutorial Arach N!D
Tutorial Arach N!Dkameshsept
 
Atmega8u2 mur
Atmega8u2 murAtmega8u2 mur
Atmega8u2 mur
Nickyhoney
 
Embedded systems 101 final
Embedded systems 101 finalEmbedded systems 101 final
Embedded systems 101 final
Khalid Elmeadawy
 
Arm cortex-m3 by-joe_bungo_arm
Arm cortex-m3 by-joe_bungo_armArm cortex-m3 by-joe_bungo_arm
Arm cortex-m3 by-joe_bungo_arm
Prashant Ahire
 
INDUSTRIAL TRAINING REPORT EMBEDDED SYSTEM.pptx
INDUSTRIAL TRAINING REPORT EMBEDDED SYSTEM.pptxINDUSTRIAL TRAINING REPORT EMBEDDED SYSTEM.pptx
INDUSTRIAL TRAINING REPORT EMBEDDED SYSTEM.pptx
MeghdeepSingh
 
Hardware Management Module
Hardware Management ModuleHardware Management Module
Hardware Management ModuleAero Plane
 
PowerDRC/LVS 2.0.1 released by POLYTEDA
PowerDRC/LVS 2.0.1 released by POLYTEDAPowerDRC/LVS 2.0.1 released by POLYTEDA
PowerDRC/LVS 2.0.1 released by POLYTEDA
Alexander Grudanov
 

Similar to Kernel Features for Reducing Power Consumption on Embedded Devices (20)

Nvidia tegra K1 Presentation
Nvidia tegra K1 PresentationNvidia tegra K1 Presentation
Nvidia tegra K1 Presentation
 
embedded system introduction to microcontrollers
embedded system introduction to microcontrollersembedded system introduction to microcontrollers
embedded system introduction to microcontrollers
 
Linux_swspnd_v0.3_pub1
Linux_swspnd_v0.3_pub1Linux_swspnd_v0.3_pub1
Linux_swspnd_v0.3_pub1
 
Power management
Power managementPower management
Power management
 
Computer Architecture and Organization
Computer Architecture and OrganizationComputer Architecture and Organization
Computer Architecture and Organization
 
Iot Workshop NITT 2015
Iot Workshop NITT 2015Iot Workshop NITT 2015
Iot Workshop NITT 2015
 
ARM - Advance RISC Machine
ARM - Advance RISC MachineARM - Advance RISC Machine
ARM - Advance RISC Machine
 
arm
armarm
arm
 
IDF'16 San Francisco - Overclocking Session
IDF'16 San Francisco - Overclocking SessionIDF'16 San Francisco - Overclocking Session
IDF'16 San Francisco - Overclocking Session
 
Microcontroller from basic_to_advanced
Microcontroller from basic_to_advancedMicrocontroller from basic_to_advanced
Microcontroller from basic_to_advanced
 
ICTCoreCh11
ICTCoreCh11ICTCoreCh11
ICTCoreCh11
 
PIC Introduction and explained in detailed
PIC Introduction and explained in detailedPIC Introduction and explained in detailed
PIC Introduction and explained in detailed
 
Tutorial Arach N!D
Tutorial Arach N!DTutorial Arach N!D
Tutorial Arach N!D
 
NFS-320
NFS-320NFS-320
NFS-320
 
Atmega8u2 mur
Atmega8u2 murAtmega8u2 mur
Atmega8u2 mur
 
Embedded systems 101 final
Embedded systems 101 finalEmbedded systems 101 final
Embedded systems 101 final
 
Arm cortex-m3 by-joe_bungo_arm
Arm cortex-m3 by-joe_bungo_armArm cortex-m3 by-joe_bungo_arm
Arm cortex-m3 by-joe_bungo_arm
 
INDUSTRIAL TRAINING REPORT EMBEDDED SYSTEM.pptx
INDUSTRIAL TRAINING REPORT EMBEDDED SYSTEM.pptxINDUSTRIAL TRAINING REPORT EMBEDDED SYSTEM.pptx
INDUSTRIAL TRAINING REPORT EMBEDDED SYSTEM.pptx
 
Hardware Management Module
Hardware Management ModuleHardware Management Module
Hardware Management Module
 
PowerDRC/LVS 2.0.1 released by POLYTEDA
PowerDRC/LVS 2.0.1 released by POLYTEDAPowerDRC/LVS 2.0.1 released by POLYTEDA
PowerDRC/LVS 2.0.1 released by POLYTEDA
 

More from Ryo Jin

Why is EFL used on Tizen?
Why is EFL used on Tizen?Why is EFL used on Tizen?
Why is EFL used on Tizen?
Ryo Jin
 
Samsung Z4 User Manual
Samsung Z4 User ManualSamsung Z4 User Manual
Samsung Z4 User Manual
Ryo Jin
 
Samsung ARTIK 050 (ARTIK ZERO) Modules Data Sheet
Samsung ARTIK 050 (ARTIK ZERO) Modules Data SheetSamsung ARTIK 050 (ARTIK ZERO) Modules Data Sheet
Samsung ARTIK 050 (ARTIK ZERO) Modules Data Sheet
Ryo Jin
 
Introduction to Watch Face Development with Tizen Studio
Introduction to Watch Face Development with Tizen StudioIntroduction to Watch Face Development with Tizen Studio
Introduction to Watch Face Development with Tizen Studio
Ryo Jin
 
Tizen 3.0's Window System Integration Layer of OpenGLES/EGL & Vulkan Driver
Tizen 3.0's Window System Integration Layer of OpenGLES/EGL & Vulkan DriverTizen 3.0's Window System Integration Layer of OpenGLES/EGL & Vulkan Driver
Tizen 3.0's Window System Integration Layer of OpenGLES/EGL & Vulkan Driver
Ryo Jin
 
Panduan Penggunaan Perangkat Wearable Tizen
Panduan Penggunaan Perangkat Wearable TizenPanduan Penggunaan Perangkat Wearable Tizen
Panduan Penggunaan Perangkat Wearable Tizen
Ryo Jin
 
Cara Menggunakan Smartphone Tizen
Cara Menggunakan Smartphone TizenCara Menggunakan Smartphone Tizen
Cara Menggunakan Smartphone Tizen
Ryo Jin
 
Gear Fit2 Watchface Design Guide
Gear Fit2 Watchface Design GuideGear Fit2 Watchface Design Guide
Gear Fit2 Watchface Design Guide
Ryo Jin
 
Samsung Indonesia: Tizen Store
Samsung Indonesia: Tizen StoreSamsung Indonesia: Tizen Store
Samsung Indonesia: Tizen Store
Ryo Jin
 
Samsung Indonesia: Tizen Wearables
Samsung Indonesia: Tizen WearablesSamsung Indonesia: Tizen Wearables
Samsung Indonesia: Tizen Wearables
Ryo Jin
 
Samsung Indonesia: Tizen Web Apps
Samsung Indonesia: Tizen Web AppsSamsung Indonesia: Tizen Web Apps
Samsung Indonesia: Tizen Web Apps
Ryo Jin
 
Samsung Indonesia: Tizen Native App
Samsung Indonesia: Tizen Native AppSamsung Indonesia: Tizen Native App
Samsung Indonesia: Tizen Native App
Ryo Jin
 
Samsung Indonesia: Tizen Platform Overview and IoT
Samsung Indonesia: Tizen Platform Overview and IoTSamsung Indonesia: Tizen Platform Overview and IoT
Samsung Indonesia: Tizen Platform Overview and IoT
Ryo Jin
 
Russian Tizen Project
Russian Tizen ProjectRussian Tizen Project
Russian Tizen Project
Ryo Jin
 
Samsung SM-R360 Tizen User Manual
Samsung SM-R360 Tizen User ManualSamsung SM-R360 Tizen User Manual
Samsung SM-R360 Tizen User Manual
Ryo Jin
 
Tizen Micro Profile for IoT device
Tizen Micro Profile for IoT deviceTizen Micro Profile for IoT device
Tizen Micro Profile for IoT device
Ryo Jin
 
Panduan Dasar Pemrograman Tizen
Panduan Dasar Pemrograman TizenPanduan Dasar Pemrograman Tizen
Panduan Dasar Pemrograman Tizen
Ryo Jin
 
The Story of Enlightenment, EFL, Tizen and Wayland
The Story of Enlightenment, EFL, Tizen and WaylandThe Story of Enlightenment, EFL, Tizen and Wayland
The Story of Enlightenment, EFL, Tizen and Wayland
Ryo Jin
 
Tizen PASS
Tizen PASSTizen PASS
Tizen PASS
Ryo Jin
 
Tizen PASS
Tizen PASSTizen PASS
Tizen PASS
Ryo Jin
 

More from Ryo Jin (20)

Why is EFL used on Tizen?
Why is EFL used on Tizen?Why is EFL used on Tizen?
Why is EFL used on Tizen?
 
Samsung Z4 User Manual
Samsung Z4 User ManualSamsung Z4 User Manual
Samsung Z4 User Manual
 
Samsung ARTIK 050 (ARTIK ZERO) Modules Data Sheet
Samsung ARTIK 050 (ARTIK ZERO) Modules Data SheetSamsung ARTIK 050 (ARTIK ZERO) Modules Data Sheet
Samsung ARTIK 050 (ARTIK ZERO) Modules Data Sheet
 
Introduction to Watch Face Development with Tizen Studio
Introduction to Watch Face Development with Tizen StudioIntroduction to Watch Face Development with Tizen Studio
Introduction to Watch Face Development with Tizen Studio
 
Tizen 3.0's Window System Integration Layer of OpenGLES/EGL & Vulkan Driver
Tizen 3.0's Window System Integration Layer of OpenGLES/EGL & Vulkan DriverTizen 3.0's Window System Integration Layer of OpenGLES/EGL & Vulkan Driver
Tizen 3.0's Window System Integration Layer of OpenGLES/EGL & Vulkan Driver
 
Panduan Penggunaan Perangkat Wearable Tizen
Panduan Penggunaan Perangkat Wearable TizenPanduan Penggunaan Perangkat Wearable Tizen
Panduan Penggunaan Perangkat Wearable Tizen
 
Cara Menggunakan Smartphone Tizen
Cara Menggunakan Smartphone TizenCara Menggunakan Smartphone Tizen
Cara Menggunakan Smartphone Tizen
 
Gear Fit2 Watchface Design Guide
Gear Fit2 Watchface Design GuideGear Fit2 Watchface Design Guide
Gear Fit2 Watchface Design Guide
 
Samsung Indonesia: Tizen Store
Samsung Indonesia: Tizen StoreSamsung Indonesia: Tizen Store
Samsung Indonesia: Tizen Store
 
Samsung Indonesia: Tizen Wearables
Samsung Indonesia: Tizen WearablesSamsung Indonesia: Tizen Wearables
Samsung Indonesia: Tizen Wearables
 
Samsung Indonesia: Tizen Web Apps
Samsung Indonesia: Tizen Web AppsSamsung Indonesia: Tizen Web Apps
Samsung Indonesia: Tizen Web Apps
 
Samsung Indonesia: Tizen Native App
Samsung Indonesia: Tizen Native AppSamsung Indonesia: Tizen Native App
Samsung Indonesia: Tizen Native App
 
Samsung Indonesia: Tizen Platform Overview and IoT
Samsung Indonesia: Tizen Platform Overview and IoTSamsung Indonesia: Tizen Platform Overview and IoT
Samsung Indonesia: Tizen Platform Overview and IoT
 
Russian Tizen Project
Russian Tizen ProjectRussian Tizen Project
Russian Tizen Project
 
Samsung SM-R360 Tizen User Manual
Samsung SM-R360 Tizen User ManualSamsung SM-R360 Tizen User Manual
Samsung SM-R360 Tizen User Manual
 
Tizen Micro Profile for IoT device
Tizen Micro Profile for IoT deviceTizen Micro Profile for IoT device
Tizen Micro Profile for IoT device
 
Panduan Dasar Pemrograman Tizen
Panduan Dasar Pemrograman TizenPanduan Dasar Pemrograman Tizen
Panduan Dasar Pemrograman Tizen
 
The Story of Enlightenment, EFL, Tizen and Wayland
The Story of Enlightenment, EFL, Tizen and WaylandThe Story of Enlightenment, EFL, Tizen and Wayland
The Story of Enlightenment, EFL, Tizen and Wayland
 
Tizen PASS
Tizen PASSTizen PASS
Tizen PASS
 
Tizen PASS
Tizen PASSTizen PASS
Tizen PASS
 

Recently uploaded

Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 

Recently uploaded (20)

Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 

Kernel Features for Reducing Power Consumption on Embedded Devices

  • 2.  Overview and goals  CPUfreq (with clock down)  Run-time PM and power domains  SoC low power states  CPU idle drivers  Devfreq  Summary
  • 3.  Limit the consumption of energy by mobile device  Do not hurt performance (at least to some extend)  The speech will focus on ARM architecture and Samsung’s Exynos System-on-Chip family, although ideas are not limited to Exynos  Target devices: smartphones, tablets, wearables  Mainline Linux kernel is changing very fast ◦ Some details about specific kernel drivers may become obsolete soon ◦ Details as for current mainline kernel: 3.16
  • 4.  All measurements were done on development devices: ◦ Custom kernels ◦ Custom operating systems  They are not representative for market/end products  Sometimes measurements on these devices may not be even close to market products  Many measurements were done in specific custom configuration, very different from market product, e.g.: ◦ No CPU idle driver, no CPUfreq driver ◦ Booted to init=/bin/sh
  • 5.  Measured on: ◦ Trats2, smartphone (Exynos 4412, 4 cores, freq 200-1400 MHz) ◦ Gear1-like wearable (Exynos 4212, 2 cores, 200-1400 MHz) ◦ Exynos 3250 development board (2 cores, 100-1000 MHz)  Kernel used: ◦ Exynos 4212 and 4412 : linux-next (next-20140804) ◦ Exynos 3250: internal Linux kernel tree 3.10  Lack of full support in mainline
  • 6.  Ondemand governor adjusts the frequency and voltage to current load  Specific conditions to embedded world – one frequency and voltage for whole cluster ◦ On most SoCs: one clock frequency/voltage for all CPUs ◦ Except big.LITTLE (e.g. 2 clusters on quad-core Exynos Octa)  Dual cluster SoCs have big.LITTLE CPUfreq driver Photo by Pauli Rautakorpi
  • 7.  Separate CPUfreq drivers for each SoC  Moving toward one generic cpufreq-cpu0 driver  cpufreq-cpu0 requires: ◦ Clock to operate on (provided by clock driver) ◦ Optionally voltage regulator (provided by regulator driver) ◦ Table of Operating Performance Points from Device Tree  OPP is a tuple of frequency and voltage  Clock/regulator/OPP frameworks add necessary abstraction layer and make cpufreq-cpu0 a generic solution
  • 8.  Reduces the frequency upon entering WFI or WFE instruction (Wait for Interrupt/Event) ◦ All cores must be idle  Behaves like a hardware ondemand CPUfreq governor ◦ But only for clock frequency (voltages remain untouched)  Supported by most of Exynos SoCs ◦ As part of clock driver for Exynos 3250, Exynos 4 and Exynos 5250 [1]
  • 9.  Measurements in idle mode (basic CPU idle – WFI), no load  No benefits if CPUfreq governor is ondemand which is quite obvious  ARMCLK cannot get below minimal frequency used in CPUfreq driver  Ondemand CPUfreq reduces also ARM voltage Board SoC Frequency [MHz] Idle [mA] Idle + clock down [mA] Trats2 Exynos 4412 1400 198 170 200 115 114 Gear1-like Exynos 4212 1400 102 82 200 60 59 Dev-board Exynos 3250 1000 36.2 26.7 100 19.2 18.5
  • 10. 0 50 100 150 200 250 current[mA] ARMCLK clk down: energy consumption Idle Idle + clock down
  • 11.
  • 12.  Putting devices into low power states when not used ◦ Optionally: automatically delayed suspends  Needs support in device drivers ◦ Driver specifies when it is working and idle  Usage counter (pm_runtime_get()/put())  Time of last activities (pm_runtime_mark_last_busy()) ◦ Driver implements runtime suspend and resume callbacks
  • 13.  Local power control, powered independently  Example power domains: ◦ CPU-s ◦ Multi-Format Codec (MFC) ◦ G3D (e.g. Mali) ◦ LCD ◦ Image Signal Processor ◦ Camera  Linux offers a generic power domain framework [2] ◦ Used by SH-Mobile and Exynos  Other vendors implement this on their own
  • 14.  Multiple Linux devices can be attached to a domain SoC CPU0 CPU1 MFC Camera Camera JPEG TV Mixer Video Processor HDMI Power Domain Devices
  • 15.  Integrates with runtime PM ◦ If all attached devices have been suspended, power down whole domain  Differences in energy consumption: Board SoC All domains enabled permanently [mA] Power domain runtime PM [mA] Diff [%] Trats2 Exynos 4412 124 114 -8% Dev-board Exynos 3250 24.7 18.5 -25%  Measurements in idle mode (basic CPU idle - WFI), no load
  • 16.
  • 17.  When in idle, enter low power state to save energy ◦ Responsible: CPU idle framework and drivers  Wait for Interrupt (WFI), basic idle state  Various SoCs support deeper low power states ◦ Msm: retention, standalone power collapse, power collapse ◦ Exynos: ARM Off TOP Running (AFTR), W-AFTR, Low Power Audio playback (LPA)  W-AFTR and LPA extends the AFTR low power mode  Usually they have higher latency for enter and leave ◦ Enter deeper state only if we won’t be awaken right away
  • 18.  System-level states ◦ Whole system must be prepared 1. CPU[1-n] must be powered off 2. Then CPU0 triggers entering deep low power state  ARM Off TOP Running (AFTR) ◦ Cortex core is power gated (power supplied but internally gated) ◦ Most of other modules are powered on (e.g. Audio, MMC, CoreSight, USB, I2C, UART etc.)
  • 19.  W-AFTR (on Exynos 3250) ◦ AFTR + power gating everything that can be power gated ◦ Except Dynamic Memory Controller, DDR, RTC ◦ Fast wake-up  Low Power Audio playback (LPA, on other Exynos SoCs) ◦ AFTR + power gating everything that can be power gated ◦ Contents of L2 cache and TOP modules are preserved (retention) ◦ Audio related blocks are on
  • 20.  Sleep ◦ Power not supplied (regulators turned off) ◦ Only ALIVE and RTC blocks are on ◦ Entered with Suspend-to-RAM Low power state Subsystem Requires additional drivers WFI Scheduler (idle loop) No, built-in AFTR, W-AFTR, LPA CPU idle CPU idle driver and support for board (arch/arm/mach-*) Sleep Suspend support for board (arch/arm/mach-*)
  • 21.  From CPU idle perspective: states are „coupled” ◦ Entering AFTR/W-AFTR/LPA depends on powering down all other CPUs[1-n] ◦ If only CPU0 is left on, then CPU idle triggers low power state  User space may hot unplug idle CPUs[1-n] ◦ echo 0 > /sys/bus/cpu/devices/cpu1/online ◦ E.g. mpdecision daemon for msm  Kernel may synchronize entering idle states ◦ Coupled CPU idle drivers  echo mem > /sys/power/state
  • 22. Sync Wait for CPU1 to power down Power down Enter AFTR or WAFTR CPU0 awake
  • 23. Sync Wait for CPU1 to power up Power down AFTR or WAFTR Woken up Woken up by CPU0 IRQ Wake CPU1
  • 24.  big.LITTLE ◦ Suspend whole cluster ◦ Supported Versatile TC2 (Linux 3.16) and Exynos 5420 (next)  Exynos AFTR ◦ Currently only for Exynos 4210 and Exynos 5250 ◦ Requires manual hot unplug of CPU1 to work  Coupled CPU idle driver for Exynos (CPU1 off, CPU0 AFTR) ◦ On going work, patch by Daniel Lezcano [3]
  • 25.  Due to lack of support in mainline all measurements were done on internal Linux kernel tree 3.10  Development board with Exynos 3250 (2 cores, 100-1000 MHz)  The goal of measurements is to show overall differences between CPU low power states  Workload: simple computation tasks (work-sleep- work), mainly used to test scheduler
  • 26.  Tested configurations: ◦ CPUs enter only WFI (no CPU idle driver) ◦ Power down CPU1 from userspace permanently, CPU0 enters WFI (no CPU idle driver) ◦ Coupled CPU idle: CPU1 power off, CPU0 AFTR ◦ Coupled CPU idle: CPU1 power off, CPU0 AFTR or W-AFTR  W-AFTR is entered if certain conditions are met. If no, enter AFTR.  Conditions:  Camera, G3D, MFC power domains are off  Certain bus clocks are gated  MMC is idle
  • 27. CPU frequency 2 tasks 3 tasks 4 tasks WFI (CPU0 + CPU1) 200 MHz 200-600 MHz 200-600 MHz CPU1 powered off 500 MHz 300-900 MHz 400-1000 MHz 25% 23% 35%35% 44% 46% 0% 5% 10% 15% 20% 25% 30% 35% 40% 45% 50% 2 3 4 TotalCPUload[%] No. tasks Total CPU usage, during load WFI (CPU0 + CPU1) CPU0 WFI + CPU1 always off
  • 28. 22.6 26 28 23.8 26.4 20 21 22 23 24 25 26 27 28 29 2 3 4 current[mA] No. tasks Energy consumption, during load WFI (CPU0 + CPU1) CPU0 WFI + CPU1 always off
  • 29.  What about coupled CPU idle drivers (CPU1 off, CPU0 AFTR or W-AFTR)? ◦ No differences because the load prevented entering deeper idle states  But a new driver which powers off CPU1 also when CPU0 is busy makes sense ◦ Workload consolidation in scheduler could also help (increased idle time of CPU1) ◦ Already discussed and some works are in progress [4]  Power-aware scheduling [5]  Sched packing [6]  Workload consolidation and CPU ConCurrency [7]
  • 30. CPU idle driver Idle [mA] Diff against WFI WFI (CPU0 + CPU1) 18.5 CPU0 WFI + CPU1 always off 18.3 -1.0% CPU idle, coupled, OFF+AFTR 17.8 -3.8% CPU idle, coupled, OFF+AFTR/WAFTR 9.8 -47.0% Suspend-to-RAM 0.46  No load  Exynos 3250 CPU @100 MHz
  • 31. 0 2 4 6 8 10 12 14 16 18 20 WFI (CPU0 + CPU1) CPU0 WFI + CPU1 always off Coupled, OFF+AFTR Coupled, OFF+AFTR/WAFTR Suspend-to-RAM current[mA] CPU idle: energy consumption, idle
  • 32.
  • 33.  Dynamic Voltage and Frequency Scaling for devices ◦ e.g. Memory bus, MFC, G2D, ISP, SD/MMC  Governors similar to CPUfreq (ondemand etc.) ◦ Current load may be taken from device performance counters  Exynos: number of read and write operations in Dynamic Memory Controller  Mainline: only drivers for Exynos 4 and Exynos 5250 ◦ ... but only for Exynos 5250 is working
  • 34.  Due to lack of support in mainline all measurements were done on internal Linux kernel tree 3.10  Development board with Exynos 3250 (2 cores, 100-1000 MHz)  The goal of measurements is to show overall difference that devfreq makes
  • 35. Possible values for Exynos 3250 development board Min Max INT voltage 0.80 V 1.00 V MIF voltage 0.85 V 1.00 V DMC clock 50 MHz 400 MHz LEFT/RIGHT buses clock 50 MHz 133 MHz  No devfreq means that highest voltages and clock rates are chosen for: ◦ bus clocks ◦ INT and MIF regulators supplying power to many SoC modules
  • 36. CPU idle driver No devfreq [mA] With devfreq [mA] Diff [%] WFI (CPU0 + CPU1) 28.9 18.5 -36% CPU0 WFI + CPU1 always off 28.6 18.3 -36% CPU idle, coupled, OFF+AFTR 27.9 17.8 -36% CPU idle, coupled, OFF+AFTR/WAFTR 16.3 9.8 -40%  No load  Exynos 3250 CPU @100 MHz
  • 37. 0 5 10 15 20 25 30 35 WFI (CPU0 + CPU1) CPU0 WFI + CPU1 always off Coupled, OFF+AFTR Coupled, OFF+AFTR/WAFTR current[mA] Devfreq: energy consumption, idle devfreq no devfreq
  • 38.  Linux kernel has a number of features for reducing energy usage ◦ Unfortunately many drivers are not yet present in mainline  Most benefits come with: ◦ Frequency and voltage scaling (CPUfreq, devfreq) ◦ Entering low power CPU states (CPU idle) ◦ Developing good drivers  For external resources use abstraction provided by the kernel (e.g. Common Clock Framework, regulators)  Runtime PM (if it is applicable)
  • 39.  Still a lot of work to do ◦ Drivers: CPU idle, devfreq ◦ Integration between scheduler, CPUfreq and CPU idle ◦ Mobile devices are somehow different  Energy consumption is an important factor (How often do you have to charge your phone?)  Mobile device is mostly idle (more opportunities to sleep)  Consolidating workload makes sense (to some extend)
  • 41.  [1] Common Clock Framework drivers for Exynos 4, 3250 and 5250 drivers/clk/samsung/clk-exynos*.c  [2] Generic Device Power Domains include/linux/om_domain.h  [3] Coupled cpuidle driver for Exynos Exynos4: cpuidle: support dual CPUs with AFTR state http://thread.gmane.org/gmane.linux.power- management.general/44248  [4] Toward a more power-efficient scheduler, Jonathan Corbet http://lwn.net/Articles/546664/
  • 42.  [5] Morten Rasmussen  Power-aware scheduling v2 https://lkml.org/lkml/2013/10/11/547  sched: Energy cost model for energy-aware scheduling https://lkml.org/lkml/2014/5/23/621  [6] Sched: packing tasks (and newer works), Vincent Guittot https://lkml.org/lkml/2013/10/18/121  [7] A new CPU load metric for power-efficient scheduler: CPU ConCurrency, Yuyang Du https://lkml.org/lkml/2014/6/25/162