View
101
Download
0
Category
Preview:
Citation preview
1
Copyright © 2017 Samsung. All Rights Reserved.
Tizen Power Management Service with PASS (Power-Aware System Service) Chanwoo Choi cw00.choi@samsung.com S/W R&D Center, Samsung Electronics
2
• Power-Management Service?
• Power-Aware System Service (PASS)?
• Example
• Next Feature
Contents
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
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
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
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 ……
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
8
• Power-Management Service?
• Power-Aware System Service (PASS)?
• Example
• Next Feature
Contents
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)
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
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
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
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
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
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
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
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
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
19
• Power-Management Service?
• Power-Aware System Service (PASS)?
• Example
• Next Feature
Contents
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
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
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)
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
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
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
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
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}
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
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
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
31
• Power-Management Service?
• Power-Aware System Service (PASS)?
• Example
• Next Feature
Contents
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
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
34 Thank you
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
Recommended