35
1 Copyright © 2017 Samsung. All Rights Reserved. Tizen Power Management Service with PASS (Power-Aware System Service) Chanwoo Choi [email protected] S/W R&D Center, Samsung Electronics

Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

Embed Size (px)

Citation preview

Page 1: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

1

Copyright © 2017 Samsung. All Rights Reserved.

Tizen Power Management Service with PASS (Power-Aware System Service) Chanwoo Choi [email protected] S/W R&D Center, Samsung Electronics

Page 2: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

2

•  Power-Management Service?

•  Power-Aware System Service (PASS)?

•  Example

•  Next Feature

Contents

Page 3: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

3

Power Management Service

•  PM (Power Management) is the key. –  High-performance requirement –  Limited H/W resources

–  Limited power capacity

Memory Bus

GPU

CPU

Power

•  Legacy PM service is included in Linux Kernel –  PM service works as a black box and is non-standard code –  No PM framework on user-space

•  Platform developers don’t know how to manage PM •  Platform developers can’t tune the behavior for PM

VR

AR

GAME

Page 4: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

4

Integrated PM service between CPU/GPU/BUS

Linux Kernel

CPU GPU BUS

High  Frequency

Low  Frequency

Current Freq Required Freq

CPUFREQ

Clock

DEVFREQ

Regulator

CPU HOTPLUG

PM QoS

PM Framework

GPU, BUS CPU

Frequency Voltage

Integrated PM service is necessary But, Integrated PM service was not merged to Linux Kernel

Legacy PM Service

GAME

Page 5: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

5 Linux Kernel

CPU Core On/Off Policy

CPUFREQ

Clock

DEVFREQ

Regulator

CPU HOTPLUG

PM QoS

PM Framework

Multi-core

But, CPU Core On/Off Policy was not merged to Linux Kernel

Legacy PM Service

Multi-Core

GAME

ON ON ON ON

ON ON ON ON

ON OFF OFF OFF

OFF OFF OFF OFF

ON OFF OFF OFF

ON OFF OFF OFF

ON OFF ON ON

ON ON ON OFF

CPU Core On/Off Policy is necessary

Page 6: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

6

Linux Kernel PM Framework

Why do need PASS

CPU scheduler

Runtime PM

CPUIDLE

Power domain

SUSPEND HIBERNATION

CGROUP

PM OPP

CPUFREQ

Clock framework

DEVFREQ

Regulator framework

CPU HOTPLUG

PM QoS

Thermal

…… Available PM Framework in Tizen

CPUFREQ

Clock framework

DEVFREQ

Regulator framework

CPU HOTPLUG

PM QoS

Thermal

PM OPP

CPU scheduler

HIBERNATION

Tizen

Used Framework in Tizen

System (Deviced, Systemd

)

SUSPEND

CGROUP

PM?

Graphics Multimedia

......

Graphics Multimedia ……

Page 7: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

7

Linux Kernel PM Framework

PASS with PM Framework

CPU scheduler

Runtime PM

CPUIDLE

Power domain

SUSPEND HIBERNATION

CGROUP

PM OPP

Clock framework

Regulator framework

CPU HOTPLUG

PM QoS

Thermal

……

Tizen

Used Framework in Tizen

System (Deviced, Systemd

)

SUSPEND

CGROUP

PASS PASS integrates and coordinates PM frameworks on Tizen.

Available PM Framework in Tizen

CPUFREQ

Clock framework

DEVFREQ

Regulator framework

CPU HOTPLUG

PM QoS

Thermal

PM OPP

CPU scheduler

HIBERNATION Available PM Framework related to Performance

CPUFREQ

Clock framework

DEVFREQ

Regulator framework

CPU HOTPLUG

PM QoS

Thermal

PM OPP

CPU scheduler

Page 8: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

8

•  Power-Management Service?

•  Power-Aware System Service (PASS)?

•  Example

•  Next Feature

Contents

Page 9: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

9

•  H/W Power and Performance Control Framework –  Default polies to control H/W resources

•  Controls CPU, GPU, Memory Bus and Peripherals

•  Integrates and Coordinates PM frameworks of Linux Kernel on platform –  Provides interface to allocate the limited resources to meet requirements:

•  Performance Demand •  Power-consumption Requirement •  Even Balance between Performance and Power

PASS (Power-Aware System Service)

Page 10: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

10

DBus

Tizen Framework

PASS Architectural Overview

PASS

PASS HAL

PASS core

DBus interface

PASS HAL interface src/hal/hal.h

PASS Resource Controller

PASS Runtime Governor

PASS Load collector PASS Parser

PASS governor

Memory Bus

BUS.so

…… Memory Bus #1

GPU

GPU.so

…… GPU #1

CPU

CPU.so

…… CPU #1

PASS PMQoS

PASS PMQoS Parser PASS PMQoS Verifier

PASS PMQoS

Tizen Framework DBus

PASS configuration big

core

LITTLE

core BUS GPU

PASS Scenario list configuration

PASS H/W resource configuration

ABI(sysfs)

Linux Kernel

H/W Resource

Page 11: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

11

H/W board

The number of resources Resource Type Description for resource

TM2 (Samsung

Exynos5433) 5

CPU ARM Cortex-A57 big core

CPU ARM Cortex-A53 LITTLE core

Memory Bus ARM AMBA Memory Bus for internal block

Memory Bus ARM AMBA Memory Bus for memory interface

GPU ARM Mali GPU T760

PASS Configuration | pass.conf [PassResource2] pass_res_type=2 pass_res_name=soc:memory_bus@0 pass_path_conf_file=/etc/pass/pass-resource2.conf [PassResource3] pass_res_type=2 pass_res_name=soc:memory_bus@1 pass_path_conf_file=/etc/pass/pass-resource3.conf [PassResource4] pass_res_type=3 pass_res_name=14ac0000.mali pass_path_conf_file=/etc/pass/pass-resource4.conf

[PassResource] pass_compatible=samsung,tm2 pass_path_compatible=/proc/device-tree/compatible pass_num_resources=5 [PassResource0] pass_res_type=1 pass_res_name=cpu0 pass_path_conf_file=/etc/pass/pass-resource0.conf pass_path_load_table=/sys/kernel/debug/cpufreq/cpu0/load_table pass_first_cpu=0 pass_num_cpus=4 [PassResource1] pass_res_type=1 pass_res_name=cpu4 pass_path_conf_file=/etc/pass/pass-resource1.conf pass_path_load_table=/sys/kernel/debug/cpufreq/cpu4/load_table pass_first_cpu=4 pass_num_cpus=4

Type : CPU Name : cpu0 Conf file : /etc/pass/pass-resource0.conf Description : Quad-core and CPU0 is first.

Type : Memory Bus Name : soc:memory_bus@0 Conf file : /etc/pass/pass-resource2.conf

Type : GPU Name : 14ac0000.mali Conf file : /etc/pass/pass-resource4.conf

Type : CPU Name : cpu4 Conf file : /etc/pass/pass-resource1.conf Description : Quad-core and CPU4 is first.

Type : Memory Bus Name : soc:memory_bus@1 Conf file : /etc/pass/pass-resource3.conf

/etc/pass/pass.conf

Page 12: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

12

PASS PMQoS Configuration | pass-pmqos.conf [PassScenario] # set to "yes" scenario_support (Default value is no) # set scenario_num to be tested

[Scenario0] name=Browser support=yes

[Scenario1] name=PowerSaving support=yes

[Scenario2] name=UltraPowerSaving support=yes [Scenario3] name=LowBattery support=yes

[Scenario4] name=AppLaunch support=yes

scenario_support=yes scenario_num=4 scenario_support=yes scenario_num=5

Page 13: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

13

PASS Resource Configuration | pass-resourceN.conf

•  Contains detailed H/W information –  The range of frequency

•  E.g., 200MHz ~ 1500MHz –  The number of CPU core in the same cluster

•  E.g., Quad-core, Octa-core

•  Define ‘PASS Level’ –  ‘PASS Level’ is basic unit of PASS. –  Each ‘PASS Level’ have the different H/W value.

[Pass] ...... [Level0] limit_min_freq= 768000 limit_max_freq= 1300000 limit_min_cpu= 0 [Level1] limit_max_freq=1000000 [Level2] limit_min_freq=1200000

[Level3] limit_min_freq=1200000 limit_min_cpu=2 [Level4] limit_min_freq=1300000 [Level5] limit_min_freq=1300000 limit_min_cpu=2 [Level6] limit_min_freq=1300000 limit_min_cpu=3

Page 14: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

14

PASS core

PASS HAL

H/W resources

Linux Kernel

PASS PMQoS | How to Decide Min/Max PASS Level

GPU Memory Bus

GPU.so BUS.so CPU.so

BUSFREQ GPUFREQ CPUFREQ

PASS Resource Controller

PASS PMQoS

CPU

HOTPLUG

PASS Scenario list configurationfile /etc/pass/pass-pmqos.conf

Tizen Framework

PASS PMQoS

Min & Max PASS Level according to scenario.

Set min~max PASS Level

PASS PMQoS Parser PASS PMQoS Verifier

DBus

PASS DBus receiver

GPU Memory Bus CPU

GPU.so BUS.so CPU.so

BUSFREQ GPUFREQ HOTPLUG CPUFREQ

ABI(sysfs)

Integrated PM Framework

Integrated PM Framework

Guarantee  required  performance  for  the  specific  use-­‐case  

Page 15: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

15

AppLaunch Test on TM1 Application Name AppLaunching Time

(unit: millisecond)

AppLaunching Time with PASS PMQoS

(unit: millisecond)

Reduced AppLaunching Time

(unit: millisecond)

Reduced Frame Per Second (unit: fps) (fps= time x 1/60)

A B C = B - A D = C / (1 / 60) com.facebook.tizen 1,492 1,391 -101 -6.1 org.tizen.browser 701 690 -11 -0.7 org.tizen.contacts 781 740 -41 -2.5 org.tizen.email 1,031 971 -60 -3.6 org.tizen.flashalert 1,081 1,021 -60 -3.6 org.tizen.gallery 611 580 -31 -1.9 org.tizen.helloworld 0.42 0.401 -0.019 0 org.tizen.message 640 611 -29 -1.7

org.tizen.music-player 1,291 1,231 -60 -3.6

org.tizen.myfile 861 801 -60 -3.6 org.tizen.setting 811 770 -41 -2.5 org.tizen.supershare 970 951 -19 -1.1 org.tizen.videos 530 511 -19 -1.1

A : Optimized Linux Kernel provided by SoC Vendor B : Optimized Linux Kernel provided by SoC Vendor + PASS PMQoS

Page 16: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

16

PASS core

H/W resources

Linux Kernel

PASS HAL

PASS Runtime governor | How to Decide Next PASS Level

GPU Memory Bus

GPU.so BUS.so CPU.so

BUSFREQ GPUFREQ CPUFREQ

ABI(sysfs)

PASS Resource Controller

PASS Runtime Governor

PASS configuration big

core

LITTLE

core BUS GPU

PASS H/W resource configuration

PASS governor

PASS Parser

CPU

HOTPLUG

Next PASS Level decided by governor.

Change H/W resource

PASS Load collector

CPU Load collector

CPU GPU Memory Bus CPU

GPU.so BUS.so CPU.so

BUSFREQ GPUFREQ HOTPLUG CPUFREQ

CPU Core On/Off Policy

Multi-Core

ON ON OFF OFF

ON ON OFF OFF

Page 17: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

17

Graphics Performance Test on Exynos4412 SoC Benchmark Testcase Measured

Frame Per Second (unit: fps, Max: 60fps)

Measured Frame Per Second

with PASS Governor (unit: fps, Max: 60fps)

Difference of Frame Per Second

(unit: fps, Max: 60fps)

A B C = B - A Webgl (Fpstest) 59.70 59.75 0.05

Webgl (Aquarium) 37.21 37.10 -0.11 Webgl (Cubemap) 54.71 54.81 0.10

Webgl (SpaceRocks) 49.08 49.16 0.08 Webgl (ToonShading) 58.66 59.33 0.67

GLBenchmark Egypt (Onscreen) - 2000 - 720x1280 56.02 56.12 0.10

GLBenchmark Pro (Onscreen) - 2100 - 720x1280 57.20 52.75 -4.45

GLBenchmark Egypt (Offscreen) - 2010 - 720x1280 116.96 116.98 0.02

GLBenchmark Pro (Offscreen) - 2111 - 720x1280 166.33 166.86 0.53

A : Optimized Linux Kernel provided by SoC Vendor B : Linux Kernel provided by Linus Torvalds+ PASS Governor

Page 18: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

18

Power-consumption Measurement on Exynos4412

Testcase Measured Power-consumtpion

(unit: mA)

Measured Power-consumption with PASS governor

(unit: mA)

Reduced Power-consumption

(unit: mA)

Reduced Power-consumptio

n (unit: percentage)

A B C = B - A D = (C / A) x 100 View menu list 311.97 306.99 -4.97 -1.59% Write Message 372.86 366.76 -6.10 -1.64%

Capture Picture 648.10 643.70 -4.41 -0.68%

Capture Video 760.09 744.40 -15.69 -2.06%

Playback Video(1080p) 359.67 355.59 -4.08 -1.13%

A : Optimized Linux Kernel provided by SoC Vendor B : Linux Kernel provided by Linus Torvalds+ PASS Governor

Page 19: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

19

•  Power-Management Service?

•  Power-Aware System Service (PASS)?

•  Example

•  Next Feature

Contents

Page 20: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

20

DBus

Tizen Framework

Modify Configuration and HAL to use PASS

PASS

PASS HAL

PASS core

PASS DBus interface

PASS HAL interface src/hal/hal.h

PASS Resource Controller

PASS Runtime Governor

PASS Load collector PASS Parser

PASS governor

Memory Bus

BUS.so

…… Memory Bus #1

GPU

GPU.so

…… GPU #1

CPU

CPU.so

…… CPU #1

PASS PMQoS

PASS PMQoS Parser PASS PMQoS Verifier

PASS PMQoS

Tizen Framework DBus

PASS configuration big

core

LITTLE

core BUS GPU

PASS Scenario list configuration

PASS H/W resource configuration

ABI(sysfs)

Linux Kernel

H/W Resource

Page 21: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

21

DBus

Tizen Framework

Add New Governor or H/W Resource

PASS

PASS HAL

PASS core

PASS DBus interface

PASS HAL interface src/hal/hal.h

PASS Resource Controller

PASS Runtime Governor

PASS Load collector PASS Parser

PASS governor

Memory Bus

BUS.so

…… Memory Bus #1

GPU

GPU.so

…… GPU #1

CPU

CPU.so

…… CPU #1

PASS PMQoS

PASS PMQoS Parser PASS PMQoS Verifier

PASS PMQoS

Tizen Framework DBus

PASS configuration big

core

LITTLE

core BUS GPU

PASS Scenario list configuration

PASS H/W resource configuration

ABI(sysfs)

Linux Kernel

H/W Resource

……

New H/W

[new H/W].so

New H/W #1

New H/W device driver

New H/W device

New PASS governor

Page 22: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

22

•  TM1 (Samsung Z3) –  Platform profile : Mobile –  H/W resource

•  CPU core : Cortex-A7 Quad-core

•  TM2 (based on Exynos5433) –  Platform profile : Mobile –  H/W resource

•  big core : Cortex-A57 Quad-core •  LITTLE core : Cortex-A53 Quad-core •  GPU : ARM Mali T-700 series •  Memory Bus : AMBA bus for INT (Internal block) •  Memory Bus : AMBA bus for MIF (Memory Interface block)

PMQoS Example on TM1 & TM2

TM1  (Samsung  Z3)

TM2  (Note4)

Page 23: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

23

PMQoS Example on TM1 (1/3)

Linux Kernel H/W

Set the H/W resources

DBus signal -  scenario name

-  locking time

Tizen Core

PASS PMQoS Parser

PASS

PASS HAL

PASS Parser [Pass] pass_num_levels=7 pass_init_level=0 pass_min_level=0 pass_max_level=6 [Level0] limit_min_freq= 768000 limit_max_freq= 1300000 limit_min_cpu= 0 [Level1] limit_max_freq=1000000 [Level2] limit_min_freq=1200000

[Level3] limit_min_freq=1200000 limit_min_cpu=2 [Level4] limit_min_freq=1300000 [Level5] limit_min_freq=1300000 limit_min_cpu=2 [Level6] limit_min_freq=1300000 limit_min_cpu=3

[PassScenario] pass_scenario_support=yes pass_num_scenarios=5 [Scenario0] name=Browser support=yes min_level=5 max_level=5 …… [Scenario4] name=AppLaunch support=yes min_level=6 max_level=6

/etc/pass/pass-resource0.conf

Page 24: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

24

PMQoS Example on TM1 (2/3)

Linux Kernel H/W

Set the H/W resources

DBus signal -  scenario name

-  locking time

Tizen Core

PASS PMQoS Parser

PASS

PASS HAL

PASS Parser [Pass] pass_num_levels=7 pass_init_level=0 pass_min_level=0 pass_max_level=6 [Level0] limit_min_freq= 768000 limit_max_freq= 1300000 limit_min_cpu= 0 [Level1] limit_max_freq=1000000 [Level2] limit_min_freq=1200000

[Level3] limit_min_freq=1200000 limit_min_cpu=2 [Level4] limit_min_freq=1300000 [Level5] limit_min_freq=1300000 limit_min_cpu=2 [Level6] limit_min_freq=1300000 limit_min_cpu=3

[PassScenario] pass_scenario_support=yes pass_num_scenarios=5 [Scenario0] name=Browser support=yes min_level=5 max_level=5 …… [Scenario4] name=AppLaunch min_level=6 max_level=6 support=yes

/etc/pass/pass-resource0.conf

Page 25: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

25

PMQoS Example on TM1 (3/3)

Linux Kernel H/W

Set the H/W resources

DBus signal -  scenario name

-  locking time

Tizen Core

PASS PMQoS Parser

PASS

PASS HAL

PASS Parser

[Scenario0] name=AppLaunch support=yes min_level=6 max_level=6 [Level6] limit_min_freq=1300000 limit_min_cpu=3

Set 1300MHz as Minimum CPU Frequency. Turn on three CPU.

AppLaunch

Send DBus signal to PASS PMQoS - DBus signal contains ‘AppLaunch’ scenario

Page 26: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

26

PMQoS Example on TM2 (1/3)

Linux Kernel H/W

Set the H/W resources

DBus signal -  scenario name

-  locking time

Tizen Core

PASS PMQoS Parser

PASS

PASS HAL

PASS Parser /etc/pass/pass.conf /etc/pass/pass-resource0.conf for LITTLE Quad-core /etc/pass/pass-resource1.conf for big Quad-core /etc/pass/pass-resource2.conf for Memory Bus1 /etc/pass/pass-resource3.conf for Memory Bus2 /etc/pass/pass-resource4.conf for Mali T700 series

/etc/pass/pass-pmqos.conf

Page 27: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

27

Each ‘pass-resource*.conf’ has the different min and max PASS Level. [Scenario0] name=AppLaunch support=yes min_level={min level according to scenario on each pass-resource*.conf} max_level={max level according to scenario on each pass-resource*.conf}

Each ‘pass-resource*.conf’ has the different min and max PASS Level. [Scenario0] name=AppLaunch support=yes min_level={min level according to scenario on each pass-resource*.conf} max_level={max level according to scenario on each pass-resource*.conf}

Each ‘pass-resource*.conf’ has the different min and max PASS Level. [Scenario0] name=AppLaunch support=yes min_level={min level according to scenario on each pass-resource*.conf} max_level={max level according to scenario on each pass-resource*.conf}

Each ‘pass-resource*.conf’ has the different min and max PASS Level. [Scenario0] name=AppLaunch support=yes min_level={min level according to scenario on each pass-resource*.conf} max_level={max level according to scenario on each pass-resource*.conf}

PMQoS Example on TM2 (2/3)

Linux Kernel H/W

Set the H/W resources

DBus signal -  scenario name

-  locking time

Tizen Core

PASS PMQoS Parser

PASS

PASS HAL

PASS Parser

/etc/pass/pass.conf /etc/pass/pass-resource0.conf for LITTLE Quad core /etc/pass/pass-resource1.conf for big Quad core /etc/pass/pass-resource2.conf for Memory Bus1 /etc/pass/pass-resource3.conf for Memory Bus2 /etc/pass/pass-resource4.conf for Mali T700 series

Each ‘pass-resource*.conf’ has different min and max PASS Level. [Scenario4] name=AppLaunch support=yes min_level={min level} max_level={max level}

Page 28: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

28

[Scenario4] name=AppLaunch min_level=2 max_level=2

...... [Level2] limit_min_cpu=2

pass-resource0.conf

[Scenario4] name=AppLaunch min_level=1 max_level=1

...... [Level1] limit_min_cpu=1

pass-resource1.conf

[Scenario4] name=AppLaunch min_level=4 max_level=4

...... [Level4] limit_min_freq=400

pass-resource2.conf

[Scenario4] name=AppLaunch min_level=6 max_level=6

...... [Level6] limit_min_freq=825

pass-resource3.conf

[Scenario4] name=AppLaunch min_level=3 max_level=3

...... [Level3] limit_min_freq=600

pass-resource4.conf

PMQoS Example on TM2 (3/3)

Linux Kernel H/W

Set the H/W resources

DBus signal -  scenario name

-  locking time

Tizen Core

PASS PMQoS Parser

PASS

PASS HAL

PASS Parser LITTLE  core

big  core

Memory  bus1

Memory  bus2

GPU

AppLaunch

Memory Bus1 Set 400MHz as minimum frequency

LITTLE Quad-core Turn on two CPU

big Quad core Turn on one CPU

GPU Set 600MHz as minimum frequency

Memory Bus2 Set 825MHz as minimum frequency

Page 29: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

29

Used Module on TM1

PASS

PASS HAL

PASS DBus interface

PASS HAL interface src/hal/hal.h

Linux Kernel CPUFREQ driver BUSFREQ driver GPUFREQ driver CPU HOTPLUG driver Thermal driver

PASS Resource Controller

PASS Runtime Governor

PASS Load collector PASS Parser

PASS governor

CPU struct pass_resource_cpu

/lib/pass/cpu.so

CPU #1

PASS PMQoS

PASS PMQoS Parser PASS PMQoS Verifier

PASS PMQoS

Vendor-dependent PM Service (non-standard)

Tizen Framework PASS configuration /etc/pass/pass.conf

CPU

PASS Scenario list configuration /etc/pass/pass-pmqos.conf

PASS H/W resource configuration /etc/pass/pass-resourceN.conf

Vendor-specific ABI (sysfs)

DBus

Used Module

Page 30: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

30

Used Module on TM2

PASS

PASS HAL

PASS DBus interface

PASS HAL interface src/hal/hal.h

ABI (sysfs)

Linux Kernel CPUFREQ driver BUSFREQ driver GPUFREQ driver CPU HOTPLUG driver Thermal driver

PASS Runtime Governor

PASS Load collector PASS Parser

PASS governor

Tizen Framework DBus

PASS configuration big

core

LITTLE

core BUS GPU

PASS H/W resource configuration /etc/pass/pass-resourceN.conf

CPU Load collector driver (Non-standard)

PASS Scenario list configuration /etc/pass/pass-pmqos.conf DBus

PASS Resource Controller

Memory Bus

BUS.so

Memory Bus #2

Memory Bus #1

GPU

GPU.so

GPU #1

CPU

CPU.so

CPU #2

CPU #1

PASS PMQoS

PASS PMQoS Parser PASS PMQoS Verifier

PASS PMQoS

Used Module

Page 31: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

31

•  Power-Management Service?

•  Power-Aware System Service (PASS)?

•  Example

•  Next Feature

Contents

Page 32: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

32

Next Feature - CPU Affinity Mode

PASS

PASS Resource Controller

PASS HAL

PASS Load collector

PASS Runtime Governor

PASS Parser

H/W Resources configuration

big core

LITTLE

core BUS GPU

H/W

Linux Kernel

PASS PMQoS Verifier

DBus interface

PASS PMQoS Parser

PASS PMQoS

Scenario list configuration

DBus

Tizen Framework

PASS CPU Affinity Mode Allocate CPU resource to

specific tasks in order to support high-performance scenarios such as VR, AR and Game

Affinity-scenario list configuration

/etc/pass/pass-affinity.conf

DBus

Tizen Framework

CGROUP

VR

GAME

Page 33: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

33

•  CPU vs. BUS vs. GPU Boosting Table •  Priority-based PMQoS

–  Each scenario has a priority. According to the priority, PASS PMQoS decides the min/max PASS Level

•  Automated Generation of the Configuration file •  Automated Tunning of the Configuration file •  Use PM feature on PASS

–  Support SCHED_DEADLINE •  Terminate tasks in a deterministic and fixed amount of time •  E.g., ‘Motion To Photon (MTP)’ constraint on VR scenario

–  Support IPA (Intelligent Power Allocation) •  Thermal management in order to use H/W resource as much as possible

Next Feature

Page 34: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

34 Thank you

Page 35: Tizen Developer Conference 2017 San Francisco - Tizen Power Management Service with PASS (Power Aware System Service)

35

•  TIZEN –  http://www.tizen.org –  https://wiki.tizen.org/wiki/Main_Page

•  PASS git repository –  https://review.tizen.org/gerrit/gitweb?p=platform/core/system/pass.git

•  PASS TM1 HAL git repository –  https://review.tizen.org/gerrit/gitweb?p=platform/adaptation/tm1/pass-hal-tm1.git

•  PASS TM2 HAL git repository –  https://review.tizen.org/gerrit/gitweb?p=platform/adaptation/tm2/pass-hal-tm2.git

•  Samsung Z3 –  http://www.samsung.com/in/smartphones/samsung-z3/

•  Samsung TM2 with Exynos5433 –  http://events.linuxfoundation.org/sites/events/files/slides/OpenIoT_ELCE2016_How%20to%20Develop%20the

%20ARM%2064bit%20TM2%20Board_0.pdf •  IPA (Intelligent Power Allocation)

–  https://developer.arm.com/open-source/intelligent-power-allocation •  SCHED_DEADLINE

–  https://en.wikipedia.org/wiki/SCHED_DEADLINE

Reference