SlideShare a Scribd company logo
Core scheduling in Xen
Jürgen Groß
Virtualization Kernel Developer
SUSE Linux GmbH, jgross@suse.com
2
Agenda
• What is “Core scheduling”?
• Motivation
• How does it work?
• Performance numbers
• Current state
What is “Core scheduling”?
4
Today: Cpu scheduling
• On each physical cpu the scheduler is deciding which
vcpu is to be scheduled next
• When taking other physical cpus into account only the
load of the system is being looked at
• Each vcpu can run on each physical cpu within some
constraints (cpupools, pinning)
5
Cpu scheduling
Core 0
Thread 0 Thread 1
Core 1
Thread 0 Thread 1
Core 2
Thread 0 Thread 1
Core 3
Thread 0 Thread 1
Dom0
vcpu0
Dom0
vcpu1
Dom0
vcpu2Dom0
vcpu3Dom0
vcpu4
Dom0
vcpu5
Dom0
vcpu6
Dom0
vcpu7
blocked
6
Cpu scheduling
Core 0
Thread 0 Thread 1
Core 1
Thread 0 Thread 1
Core 2
Thread 0 Thread 1
Core 3
Thread 0 Thread 1
Dom0
vcpu0
Dom0
vcpu1
Dom0
vcpu2Dom0
vcpu3Dom0
vcpu4
Dom0
vcpu5
Dom0
vcpu6
Dom0
vcpu7
DomU
vcpu3
DomU
vcpu0
DomU
vcpu2
DomU
vcpu1
blocked
7
Cpu scheduling
Core 0
Thread 0 Thread 1
Core 1
Thread 0 Thread 1
Core 2
Thread 0 Thread 1
Core 3
Thread 0 Thread 1
Dom0
vcpu0
Dom0
vcpu1
Dom0
vcpu2Dom0
vcpu3
Dom0
vcpu4
Dom0
vcpu5
Dom0
vcpu6
Dom0
vcpu7
DomU
vcpu3
DomU
vcpu0
DomU
vcpu2
DomU
vcpu1
runq
blocked
8
Core scheduling
• The scheduler is no longer acting on (v)cpus, but on
(v)cores
• All siblings (threads) of a core are scheduled together,
scheduling for all siblings of a single core is
synchronized
• The relation between vcores and vcpus is fixed, in
contrast to “core aware scheduling” where it might
change
• Pinning and cpupools are affecting cores (so e.g. pinning
a vcpu to a specific physical cpu will pin all vcpus of the
same vcore)
9
Core scheduling
Core 0
Thread 0 Thread 1
Core 1
Thread 0 Thread 1
Core 2
Thread 0 Thread 1
Core 3
Thread 0 Thread 1
Dom0
vcpu0
Dom0
vcpu1
Dom0
vcpu4
Dom0
vcpu5
Dom0
vcpu6
Dom0
vcpu7
Dom0
vcpu2
Dom0
vcpu3
blocked
10
Core scheduling
Core 0
Thread 0 Thread 1
Core 1
Thread 0 Thread 1
Core 2
Thread 0 Thread 1
Core 3
Thread 0 Thread 1
Dom0
vcpu0
Dom0
vcpu1
Dom0
vcpu4
Dom0
vcpu5
Dom0
vcpu6
Dom0
vcpu7
DomU
vcpu0
DomU
vcpu1
DomU
vcpu3
DomU
vcpu2
runq Dom0
vcpu2
Dom0
vcpu3
blocked
Motivation
12
Cpu bugs
• Several cpu bugs (e.g. L1TF, MDS) involve side channel
attacks to steal data from threads of the same core
• Core scheduling prohibits cross-domain side channel
attacks
• This lays the groundwork for a safe operation with SMT
enabled
13
Fairness of accounting
• Threads running on the same core share multiple
resources (execution units, TLB, caches), so they are
influencing each other regarding performance
• With cpu scheduling a guest’s cpu performance is
depending on the host load, not on that of the guest
• In case the owner of the guest has to pay for the used
cpu time the price will depend on host load
14
Guest side optimizations
• The guest might decide to let run only one thread of a
core to make use of all resources of that core in a single
thread
• Some threads might be able to make use of shared
resources when running on the same core
• The guest might want to mitigate against cpu bugs via
core-aware scheduling
How does it work?
16
Decoupling scheduling from cpus
• In schedulers switch:
‒ vcpu→sched_unit
‒ pcpu→sched_resource
• Scheduling decisions are the same as before
• Amount of needed changes in sched_*.c rather high, but
mostly mechanical
• Scheduler.c is acting as abstraction layer for rest of the
hypervisor
• A sched_resource can be a cpu, core or socket
17
Syncing of context switches
• When switching vcpus on a cpu all other vcpus of the
same sched_unit must be switched on all other cpus of
the sched_resource
• Syncing is done in 2 steps:
‒ After decision is made to switch all other cpus of sched_resource
must rendezvous
‒ Context switch is performed on all affected cpus in parallel, after
that all cpus again rendezvous before they proceed
• At no time two vcpus of different sched_units are running
in guest mode on the same sched_resource
18
Syncing of context switches
1.Schedule event on one cpu
2.Take schedule lock, call scheduler for selecting next
sched_unit to run
3.If no change, drop lock and exit, otherwise signal other cpus
of sched_resource to process schedule_slave event, then
drop lock and wait for others to join
4.Last one to join switches sched_unit on sched_resource,
frees others to continue
5.On each cpu of sched_resource context is switched to new
vcpu
6.Wait on each cpu until all context switches are done, then
leave schedule handling
19
Idle vcpus
• A guest vcpu becoming idle will result in the idle vcpu
being scheduled
• Only if the scheduler decides to switch sched_units a
synchronized context switch is needed
• No change of address space when switching between
idle and guest vcpus without sched_unit switch (no
change on x86)
• An idle vcpu running in a guest sched_unit won’t run
tasklets or do livepatching in order to avoid activities for
other guests
20
Cpupools
• Only complete sched_resources can be moved from/to
cpupools
• For easy support of cpu hotplug cpus not in any cpupool
are not handled in units of sched_resources, but
individually
• At system boot cpupool0 is only created after all cpus
are brought online, as otherwise the number of cpus per
sched_resource isn’t yet known
• Cpus not in any pool are no longer handled by the
default scheduler, but by the new idle_scheduler
21
Cpu hotplug
• SMT on/off switching at runtime disabled with core
scheduling active
• Offlining a cpu will now first remove the related
sched_resource from cpupool0 if necessary
• Onlining a cpu will add it only to cpupool0 in case the
complete sched_resource is online
22
Cpupool0
Cpupools and cpu hotplug
Core 0
Thread 0 Thread 1
Core 1
Thread 0 Thread 1
Core 2
Thread 0 Thread 1
Core 3
Thread 0 Thread 1
23
Cpupool0
Cpupools and cpu hotplug
Core 0
Thread 0 Thread 1
Core 1
Thread 0 Thread 1
Core 2
Thread 0 Thread 1 Thread 0 Thread 1
24
Cpupool0
Cpupools and cpu hotplug
Core 0
Thread 0 Thread 1
Core 1
Thread 0 Thread 1
Core 2
Thread 0 Thread 1 Thread 0
Performance numbers
26
Test basics
• All tests done by Dario Faggioli (SUSE)
• Test machine was a 4-core system with HT (8 cpus)
• Dom0 always with 8 vcpus, HVM domU with 4 or 8 vcpus
• Scenarios (all results compared to “without patches, HT on”,
positive numbers are better):
‒ Without patches (HT on/off)
‒ sched-gran=cpu (HT on/off)
‒ sched-gran=core
• Benchmarks:
‒ Stream (memory benchmark, 4 tasks in parallel)
‒ Kernbench (kernel build with 2, 4, 8 or 16 threads)
‒ Hackbench (communication via pipes, machine saturated)
‒ Mutilate (load generator for memcached)
‒ Netperf (TCP/UDP/UNIX, two communicating tasks)
‒ Pgioperf (postgres micro-benchmark)
27
Dom0 only
Unpatched,
no-HT
gran=cpu, HT
gran=cpu, no-
HT
gran=core
Stream
-0.06% …
+0.11%
+0.11% …
+0.50%
-0.02% …
+1.11%
-7.37% …
-3.82%
Kernbench
-36.9% ...
+7.07%
-0.61% …
+0.21%
-36.81% …
+6.77%
-5.98% …
-0.01%
Hackbench
-67.08% …
-43.44%
-4.79% …
+7.35%
-68.30% …
-37.19%
-3.22% …
+5.38%
Mutilate
-20.65% …
+10.05%
-0.63% …
-0.08%
-19.70% …
+11.26%
-11.40% …
-2.23%
Netperf
-0.37% …
+3.14%
-4.38% …
+1.00%
-5.01% …
+1.71%
-33.08% …
+6.71%
Pgioperf
-14.01% …
-6.63%
-12.54% …
+1.15%
-11.04% …
+3.09%
-6.71% …
-4.04%
28
HVM domU, 4 vcpus
Unpatched,
no-HT
gran=cpu, HT
gran=cpu, no-
HT
gran=core
Stream
-6.67% …
-0.25%
-6.86% …
-5.38%
-1.35% …
+0.23%
-16.81% …
-8.35%
Kernbench
+1.17% ...
+14.52%
+1.14% …
+6.31%
-0.03% …
+13.52%
-39.96% …
-13.99%
Hackbench
-8.12% …
+26.34%
-33.51% …
+10.54%
-11.78% …
+24.71%
-43.25% …
-4.07%
Mutilate
-0.49% …
+9.76%
-4.49% …
-0.12%
-3.12% …
+8.80%
-16.66% …
-8.48%
Netperf
-8.04% …
+11.83%
-41.63% …
+2.55%
-10.78% …
+17.42%
-26.58% …
+4.74%
Pgioperf
-1.47% …
+3.57%
-29.63% …
+1.77%
+0.28% …
+5.48%
+0.10% …
+13.85%
29
HVM domU, 8 vcpus
Unpatched,
no-HT
gran=cpu, HT
gran=cpu, no-
HT
gran=core
Stream
+2.82% …
+6.84%
+0.47% …
+5.07%
+4.52% …
+5.73%
-14.91% …
-9.55%
Kernbench
-46.41% ...
+6.04%
+0.46% …
+1.70%
-46.42% …
+6.25%
-6.91% …
+0.19%
Hackbench
-50.23% …
+4.17%
-14.08% …
+14.06%
-48.40% …
+7.08%
-16.51% …
+11.06%
Mutilate
-68.33% …
-6.48%
-1.11% …
+2.33%
-66.81% …
-3.00%
-45.50% …
-6.17%
Netperf
-11.87% …
+25.95%
-15.48% …
+14.57%
-8.64% …
+4.58%
-18.00% …
+1.81%
Pgioperf
+0.79% …
+94.25%
-1.62% …
+19.02%
-0.44% …
+83.68%
-49.56% …
+0.51%
30
2 * HVM domU, 8 vcpus
Unpatched,
no-HT
gran=cpu, HT
gran=cpu, no-
HT
gran=core
Stream
-26.13% …
-22.94%
-0.87% …
+1.45%
-25.48% …
-22.58%
-13.34% …
-6.37%
Kernbench
-50.26% ...
-48.38%
-0.24% …
-0.13%
-51.79% …
-49.89%
-23.98% …
-17.84%
Hackbench
+15.02% …
+35.59%
-2.28% …
+5.42%
+10.41% …
+34.48%
-12.19% …
+16.91%
Mutilate
-93.85% …
-56.82%
-2.19% …
+8.57%
-91.89% …
-57.33%
-83.70% …
-13.03%
Netperf
-50.48% …
-15.77%
-16.39% …
+7.61%
-48.31% …
-18.41%
-36.22% …
+4.41%
Pgioperf
-7.32% …
-2.18%
-231.22% …
+0.30%
-1605.80% …
-5.63%
-6035.64% …
-30.76%
Current state
32
Patches already committed
• Removing cpu on/offlining hooks in schedule.c and
cpupool.c for suspend/resume handling
• Small correction in sched_credit2.c for SMT-aware
scheduling (needed for core scheduling)
• Inline wrappers for calling per-scheduler functions from
schedule.c
• Test for mandatory per-scheduler functions instead of
ASSERT()
• Interface change for sched_switch_sched() per-
scheduler function avoiding code duplication
33
Patches in review
• V1 of the (rest-)series, currently 57 patches
• 40 files changed, 3704 insertions(+), 2299 deletions(-)
• Only small parts of V1 have been reviewed up to now
(thanks to all reviewers!)
• All comments on RFC-V1 and RFC-V2 have been
addressed, those required some major reworks (partially
due to renaming requests, partially conceptual ones)
34
Future plans
• Rework of scheduler related files (move to
common/sched/, making sched-if.h really scheduler
private)
• ARM support
• Support of per-cpupool scheduling granularity
• Support of per-cpupool SMT setting
• Sane topology reporting to the guests
• Add hypercall syncing between threads for full
L1TF/MDS mitigation (probably kills performance)
35

More Related Content

What's hot

Appium.pptx
Appium.pptxAppium.pptx
Appium.pptx
SameerAlam82
 
Mobile development with Flutter
Mobile development with FlutterMobile development with Flutter
Mobile development with Flutter
Awok
 
XPDS16: Porting Xen on ARM to a new SOC - Julien Grall, ARM
XPDS16: Porting Xen on ARM to a new SOC - Julien Grall, ARMXPDS16: Porting Xen on ARM to a new SOC - Julien Grall, ARM
XPDS16: Porting Xen on ARM to a new SOC - Julien Grall, ARM
The Linux Foundation
 
J2ME
J2MEJ2ME
F9: A Secure and Efficient Microkernel Built for Deeply Embedded Systems
F9: A Secure and Efficient Microkernel Built for Deeply Embedded SystemsF9: A Secure and Efficient Microkernel Built for Deeply Embedded Systems
F9: A Secure and Efficient Microkernel Built for Deeply Embedded Systems
National Cheng Kung University
 
Linux Internals - Part I
Linux Internals - Part ILinux Internals - Part I
Automation using Appium
Automation using AppiumAutomation using Appium
Automation using Appium
Livares Technologies Pvt Ltd
 
Google Maps in Android
Google Maps in AndroidGoogle Maps in Android
Google Maps in Android
Mobile 2.0 Europe
 
Lucene gosenの紹介 solr勉強会第7回
Lucene gosenの紹介 solr勉強会第7回Lucene gosenの紹介 solr勉強会第7回
Lucene gosenの紹介 solr勉強会第7回
Jun Ohtani
 
Introduction to flutter
Introduction to flutter Introduction to flutter
Introduction to flutter
Wan Muzaffar Wan Hashim
 
1장 Java란 무엇인가.key
1장 Java란 무엇인가.key1장 Java란 무엇인가.key
1장 Java란 무엇인가.key
김 한도
 
以 Kotlin Multiplatform Mobile (KMM) 開發跨平台行動應用
以 Kotlin Multiplatform Mobile (KMM) 開發跨平台行動應用以 Kotlin Multiplatform Mobile (KMM) 開發跨平台行動應用
以 Kotlin Multiplatform Mobile (KMM) 開發跨平台行動應用
Shengyou Fan
 
Building a developer documentation wiki
Building a developer documentation wikiBuilding a developer documentation wiki
Building a developer documentation wiki
Sarah Maddox
 
Kotlin presentation
Kotlin presentation Kotlin presentation
Kotlin presentation
MobileAcademy
 
Pentesting Android Apps using Frida (Beginners)
Pentesting Android Apps using Frida (Beginners)Pentesting Android Apps using Frida (Beginners)
Pentesting Android Apps using Frida (Beginners)
Chandrapal Badshah
 
Android Internship report presentation
Android Internship report presentationAndroid Internship report presentation
Android Internship report presentation
vinayh.vaghamshi _
 
Android & iOS Automation Using Appium
Android & iOS Automation Using AppiumAndroid & iOS Automation Using Appium
Android & iOS Automation Using Appium
Mindfire Solutions
 
Flutter
Flutter Flutter
Flutter
Mohit Nainwal
 
Intro to Flutter
Intro to FlutterIntro to Flutter
Intro to Flutter
Eason Pai
 
Android terminologies
Android terminologiesAndroid terminologies
Android terminologies
jerry vasoya
 

What's hot (20)

Appium.pptx
Appium.pptxAppium.pptx
Appium.pptx
 
Mobile development with Flutter
Mobile development with FlutterMobile development with Flutter
Mobile development with Flutter
 
XPDS16: Porting Xen on ARM to a new SOC - Julien Grall, ARM
XPDS16: Porting Xen on ARM to a new SOC - Julien Grall, ARMXPDS16: Porting Xen on ARM to a new SOC - Julien Grall, ARM
XPDS16: Porting Xen on ARM to a new SOC - Julien Grall, ARM
 
J2ME
J2MEJ2ME
J2ME
 
F9: A Secure and Efficient Microkernel Built for Deeply Embedded Systems
F9: A Secure and Efficient Microkernel Built for Deeply Embedded SystemsF9: A Secure and Efficient Microkernel Built for Deeply Embedded Systems
F9: A Secure and Efficient Microkernel Built for Deeply Embedded Systems
 
Linux Internals - Part I
Linux Internals - Part ILinux Internals - Part I
Linux Internals - Part I
 
Automation using Appium
Automation using AppiumAutomation using Appium
Automation using Appium
 
Google Maps in Android
Google Maps in AndroidGoogle Maps in Android
Google Maps in Android
 
Lucene gosenの紹介 solr勉強会第7回
Lucene gosenの紹介 solr勉強会第7回Lucene gosenの紹介 solr勉強会第7回
Lucene gosenの紹介 solr勉強会第7回
 
Introduction to flutter
Introduction to flutter Introduction to flutter
Introduction to flutter
 
1장 Java란 무엇인가.key
1장 Java란 무엇인가.key1장 Java란 무엇인가.key
1장 Java란 무엇인가.key
 
以 Kotlin Multiplatform Mobile (KMM) 開發跨平台行動應用
以 Kotlin Multiplatform Mobile (KMM) 開發跨平台行動應用以 Kotlin Multiplatform Mobile (KMM) 開發跨平台行動應用
以 Kotlin Multiplatform Mobile (KMM) 開發跨平台行動應用
 
Building a developer documentation wiki
Building a developer documentation wikiBuilding a developer documentation wiki
Building a developer documentation wiki
 
Kotlin presentation
Kotlin presentation Kotlin presentation
Kotlin presentation
 
Pentesting Android Apps using Frida (Beginners)
Pentesting Android Apps using Frida (Beginners)Pentesting Android Apps using Frida (Beginners)
Pentesting Android Apps using Frida (Beginners)
 
Android Internship report presentation
Android Internship report presentationAndroid Internship report presentation
Android Internship report presentation
 
Android & iOS Automation Using Appium
Android & iOS Automation Using AppiumAndroid & iOS Automation Using Appium
Android & iOS Automation Using Appium
 
Flutter
Flutter Flutter
Flutter
 
Intro to Flutter
Intro to FlutterIntro to Flutter
Intro to Flutter
 
Android terminologies
Android terminologiesAndroid terminologies
Android terminologies
 

Similar to XPDDS19: Core Scheduling in Xen - Jürgen Groß, SUSE

AOS Lab 6: Scheduling
AOS Lab 6: SchedulingAOS Lab 6: Scheduling
AOS Lab 6: Scheduling
Zubair Nabi
 
Ch6 cpu scheduling
Ch6   cpu schedulingCh6   cpu scheduling
Ch6 cpu scheduling
Welly Dian Astika
 
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
 
Introduction to ARM big.LITTLE technology
Introduction to ARM big.LITTLE technologyIntroduction to ARM big.LITTLE technology
Introduction to ARM big.LITTLE technology
義洋 顏
 
Broken Performance Tools
Broken Performance ToolsBroken Performance Tools
Broken Performance Tools
C4Media
 
Process scheduling
Process schedulingProcess scheduling
Process scheduling
Hao-Ran Liu
 
QCon 2015 Broken Performance Tools
QCon 2015 Broken Performance ToolsQCon 2015 Broken Performance Tools
QCon 2015 Broken Performance Tools
Brendan Gregg
 
UNIPROCESS SCHEDULING.pptx
UNIPROCESS SCHEDULING.pptxUNIPROCESS SCHEDULING.pptx
UNIPROCESS SCHEDULING.pptx
ansariparveen06
 
Q2.12: Existing Linux Mechanisms to Support big.LITTLE
Q2.12: Existing Linux Mechanisms to Support big.LITTLEQ2.12: Existing Linux Mechanisms to Support big.LITTLE
Q2.12: Existing Linux Mechanisms to Support big.LITTLE
Linaro
 
VMworld 2016: vSphere 6.x Host Resource Deep Dive
VMworld 2016: vSphere 6.x Host Resource Deep DiveVMworld 2016: vSphere 6.x Host Resource Deep Dive
VMworld 2016: vSphere 6.x Host Resource Deep Dive
VMworld
 
Kvm performance optimization for ubuntu
Kvm performance optimization for ubuntuKvm performance optimization for ubuntu
Kvm performance optimization for ubuntu
Sim Janghoon
 
Build an High-Performance and High-Durable Block Storage Service Based on Ceph
Build an High-Performance and High-Durable Block Storage Service Based on CephBuild an High-Performance and High-Durable Block Storage Service Based on Ceph
Build an High-Performance and High-Durable Block Storage Service Based on Ceph
Rongze Zhu
 
operating system (1).pdf
operating system (1).pdfoperating system (1).pdf
operating system (1).pdf
AliyanAbbas1
 
Section05 scheduling
Section05 schedulingSection05 scheduling
Section05 scheduling
Venkatesh Chowdary Nagilla
 
Multithreading computer architecture
 Multithreading computer architecture  Multithreading computer architecture
Multithreading computer architecture
Haris456
 
Round-ribon algorithm presntation
Round-ribon algorithm presntationRound-ribon algorithm presntation
Round-ribon algorithm presntation
Jamsheed Ali
 
OS.pptx
OS.pptxOS.pptx
Operating system 28 fundamental of scheduling
Operating system 28 fundamental of schedulingOperating system 28 fundamental of scheduling
Operating system 28 fundamental of scheduling
Vaibhav Khanna
 
Operating Systems 1 (10/12) - Scheduling
Operating Systems 1 (10/12) - SchedulingOperating Systems 1 (10/12) - Scheduling
Operating Systems 1 (10/12) - Scheduling
Peter Tröger
 
Programming Models for Heterogeneous Chips
Programming Models for  Heterogeneous ChipsProgramming Models for  Heterogeneous Chips
Programming Models for Heterogeneous Chips
Facultad de Informática UCM
 

Similar to XPDDS19: Core Scheduling in Xen - Jürgen Groß, SUSE (20)

AOS Lab 6: Scheduling
AOS Lab 6: SchedulingAOS Lab 6: Scheduling
AOS Lab 6: Scheduling
 
Ch6 cpu scheduling
Ch6   cpu schedulingCh6   cpu scheduling
Ch6 cpu scheduling
 
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
 
Introduction to ARM big.LITTLE technology
Introduction to ARM big.LITTLE technologyIntroduction to ARM big.LITTLE technology
Introduction to ARM big.LITTLE technology
 
Broken Performance Tools
Broken Performance ToolsBroken Performance Tools
Broken Performance Tools
 
Process scheduling
Process schedulingProcess scheduling
Process scheduling
 
QCon 2015 Broken Performance Tools
QCon 2015 Broken Performance ToolsQCon 2015 Broken Performance Tools
QCon 2015 Broken Performance Tools
 
UNIPROCESS SCHEDULING.pptx
UNIPROCESS SCHEDULING.pptxUNIPROCESS SCHEDULING.pptx
UNIPROCESS SCHEDULING.pptx
 
Q2.12: Existing Linux Mechanisms to Support big.LITTLE
Q2.12: Existing Linux Mechanisms to Support big.LITTLEQ2.12: Existing Linux Mechanisms to Support big.LITTLE
Q2.12: Existing Linux Mechanisms to Support big.LITTLE
 
VMworld 2016: vSphere 6.x Host Resource Deep Dive
VMworld 2016: vSphere 6.x Host Resource Deep DiveVMworld 2016: vSphere 6.x Host Resource Deep Dive
VMworld 2016: vSphere 6.x Host Resource Deep Dive
 
Kvm performance optimization for ubuntu
Kvm performance optimization for ubuntuKvm performance optimization for ubuntu
Kvm performance optimization for ubuntu
 
Build an High-Performance and High-Durable Block Storage Service Based on Ceph
Build an High-Performance and High-Durable Block Storage Service Based on CephBuild an High-Performance and High-Durable Block Storage Service Based on Ceph
Build an High-Performance and High-Durable Block Storage Service Based on Ceph
 
operating system (1).pdf
operating system (1).pdfoperating system (1).pdf
operating system (1).pdf
 
Section05 scheduling
Section05 schedulingSection05 scheduling
Section05 scheduling
 
Multithreading computer architecture
 Multithreading computer architecture  Multithreading computer architecture
Multithreading computer architecture
 
Round-ribon algorithm presntation
Round-ribon algorithm presntationRound-ribon algorithm presntation
Round-ribon algorithm presntation
 
OS.pptx
OS.pptxOS.pptx
OS.pptx
 
Operating system 28 fundamental of scheduling
Operating system 28 fundamental of schedulingOperating system 28 fundamental of scheduling
Operating system 28 fundamental of scheduling
 
Operating Systems 1 (10/12) - Scheduling
Operating Systems 1 (10/12) - SchedulingOperating Systems 1 (10/12) - Scheduling
Operating Systems 1 (10/12) - Scheduling
 
Programming Models for Heterogeneous Chips
Programming Models for  Heterogeneous ChipsProgramming Models for  Heterogeneous Chips
Programming Models for Heterogeneous Chips
 

More from The Linux Foundation

ELC2019: Static Partitioning Made Simple
ELC2019: Static Partitioning Made SimpleELC2019: Static Partitioning Made Simple
ELC2019: Static Partitioning Made Simple
The Linux Foundation
 
XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...
XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...
XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...
The Linux Foundation
 
XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...
XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...
XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...
The Linux Foundation
 
XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...
XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...
XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...
The Linux Foundation
 
XPDDS19 Keynote: Unikraft Weather Report
XPDDS19 Keynote:  Unikraft Weather ReportXPDDS19 Keynote:  Unikraft Weather Report
XPDDS19 Keynote: Unikraft Weather Report
The Linux Foundation
 
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...
The Linux Foundation
 
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, XilinxXPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
The Linux Foundation
 
XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Sys...
XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Sys...XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Sys...
XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Sys...
The Linux Foundation
 
XPDDS19: Memories of a VM Funk - Mihai Donțu, Bitdefender
XPDDS19: Memories of a VM Funk - Mihai Donțu, BitdefenderXPDDS19: Memories of a VM Funk - Mihai Donțu, Bitdefender
XPDDS19: Memories of a VM Funk - Mihai Donțu, Bitdefender
The Linux Foundation
 
OSSJP/ALS19: The Road to Safety Certification: Overcoming Community Challeng...
OSSJP/ALS19:  The Road to Safety Certification: Overcoming Community Challeng...OSSJP/ALS19:  The Road to Safety Certification: Overcoming Community Challeng...
OSSJP/ALS19: The Road to Safety Certification: Overcoming Community Challeng...
The Linux Foundation
 
OSSJP/ALS19: The Road to Safety Certification: How the Xen Project is Making...
 OSSJP/ALS19: The Road to Safety Certification: How the Xen Project is Making... OSSJP/ALS19: The Road to Safety Certification: How the Xen Project is Making...
OSSJP/ALS19: The Road to Safety Certification: How the Xen Project is Making...
The Linux Foundation
 
XPDDS19: Speculative Sidechannels and Mitigations - Andrew Cooper, Citrix
XPDDS19: Speculative Sidechannels and Mitigations - Andrew Cooper, CitrixXPDDS19: Speculative Sidechannels and Mitigations - Andrew Cooper, Citrix
XPDDS19: Speculative Sidechannels and Mitigations - Andrew Cooper, Citrix
The Linux Foundation
 
XPDDS19: Keeping Coherency on Arm: Reborn - Julien Grall, Arm ltd
XPDDS19: Keeping Coherency on Arm: Reborn - Julien Grall, Arm ltdXPDDS19: Keeping Coherency on Arm: Reborn - Julien Grall, Arm ltd
XPDDS19: Keeping Coherency on Arm: Reborn - Julien Grall, Arm ltd
The Linux Foundation
 
XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...
XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...
XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...
The Linux Foundation
 
XPDDS19: Status of PCI Emulation in Xen - Roger Pau Monné, Citrix Systems R&D
XPDDS19: Status of PCI Emulation in Xen - Roger Pau Monné, Citrix Systems R&DXPDDS19: Status of PCI Emulation in Xen - Roger Pau Monné, Citrix Systems R&D
XPDDS19: Status of PCI Emulation in Xen - Roger Pau Monné, Citrix Systems R&D
The Linux Foundation
 
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM Systems
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM SystemsXPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM Systems
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM Systems
The Linux Foundation
 
XPDDS19: Bringing Xen to the Masses: The Story of Building a Community-driven...
XPDDS19: Bringing Xen to the Masses: The Story of Building a Community-driven...XPDDS19: Bringing Xen to the Masses: The Story of Building a Community-driven...
XPDDS19: Bringing Xen to the Masses: The Story of Building a Community-driven...
The Linux Foundation
 
XPDDS19: Will Robots Automate Your Job Away? Streamlining Xen Project Contrib...
XPDDS19: Will Robots Automate Your Job Away? Streamlining Xen Project Contrib...XPDDS19: Will Robots Automate Your Job Away? Streamlining Xen Project Contrib...
XPDDS19: Will Robots Automate Your Job Away? Streamlining Xen Project Contrib...
The Linux Foundation
 
XPDDS19: Client Virtualization Toolstack in Go - Nick Rosbrook & Brendan Kerr...
XPDDS19: Client Virtualization Toolstack in Go - Nick Rosbrook & Brendan Kerr...XPDDS19: Client Virtualization Toolstack in Go - Nick Rosbrook & Brendan Kerr...
XPDDS19: Client Virtualization Toolstack in Go - Nick Rosbrook & Brendan Kerr...
The Linux Foundation
 
XPDDS19: Implementing AMD MxGPU - Jonathan Farrell, Assured Information Security
XPDDS19: Implementing AMD MxGPU - Jonathan Farrell, Assured Information SecurityXPDDS19: Implementing AMD MxGPU - Jonathan Farrell, Assured Information Security
XPDDS19: Implementing AMD MxGPU - Jonathan Farrell, Assured Information Security
The Linux Foundation
 

More from The Linux Foundation (20)

ELC2019: Static Partitioning Made Simple
ELC2019: Static Partitioning Made SimpleELC2019: Static Partitioning Made Simple
ELC2019: Static Partitioning Made Simple
 
XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...
XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...
XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...
 
XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...
XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...
XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...
 
XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...
XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...
XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...
 
XPDDS19 Keynote: Unikraft Weather Report
XPDDS19 Keynote:  Unikraft Weather ReportXPDDS19 Keynote:  Unikraft Weather Report
XPDDS19 Keynote: Unikraft Weather Report
 
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...
 
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, XilinxXPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
 
XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Sys...
XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Sys...XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Sys...
XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Sys...
 
XPDDS19: Memories of a VM Funk - Mihai Donțu, Bitdefender
XPDDS19: Memories of a VM Funk - Mihai Donțu, BitdefenderXPDDS19: Memories of a VM Funk - Mihai Donțu, Bitdefender
XPDDS19: Memories of a VM Funk - Mihai Donțu, Bitdefender
 
OSSJP/ALS19: The Road to Safety Certification: Overcoming Community Challeng...
OSSJP/ALS19:  The Road to Safety Certification: Overcoming Community Challeng...OSSJP/ALS19:  The Road to Safety Certification: Overcoming Community Challeng...
OSSJP/ALS19: The Road to Safety Certification: Overcoming Community Challeng...
 
OSSJP/ALS19: The Road to Safety Certification: How the Xen Project is Making...
 OSSJP/ALS19: The Road to Safety Certification: How the Xen Project is Making... OSSJP/ALS19: The Road to Safety Certification: How the Xen Project is Making...
OSSJP/ALS19: The Road to Safety Certification: How the Xen Project is Making...
 
XPDDS19: Speculative Sidechannels and Mitigations - Andrew Cooper, Citrix
XPDDS19: Speculative Sidechannels and Mitigations - Andrew Cooper, CitrixXPDDS19: Speculative Sidechannels and Mitigations - Andrew Cooper, Citrix
XPDDS19: Speculative Sidechannels and Mitigations - Andrew Cooper, Citrix
 
XPDDS19: Keeping Coherency on Arm: Reborn - Julien Grall, Arm ltd
XPDDS19: Keeping Coherency on Arm: Reborn - Julien Grall, Arm ltdXPDDS19: Keeping Coherency on Arm: Reborn - Julien Grall, Arm ltd
XPDDS19: Keeping Coherency on Arm: Reborn - Julien Grall, Arm ltd
 
XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...
XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...
XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...
 
XPDDS19: Status of PCI Emulation in Xen - Roger Pau Monné, Citrix Systems R&D
XPDDS19: Status of PCI Emulation in Xen - Roger Pau Monné, Citrix Systems R&DXPDDS19: Status of PCI Emulation in Xen - Roger Pau Monné, Citrix Systems R&D
XPDDS19: Status of PCI Emulation in Xen - Roger Pau Monné, Citrix Systems R&D
 
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM Systems
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM SystemsXPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM Systems
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM Systems
 
XPDDS19: Bringing Xen to the Masses: The Story of Building a Community-driven...
XPDDS19: Bringing Xen to the Masses: The Story of Building a Community-driven...XPDDS19: Bringing Xen to the Masses: The Story of Building a Community-driven...
XPDDS19: Bringing Xen to the Masses: The Story of Building a Community-driven...
 
XPDDS19: Will Robots Automate Your Job Away? Streamlining Xen Project Contrib...
XPDDS19: Will Robots Automate Your Job Away? Streamlining Xen Project Contrib...XPDDS19: Will Robots Automate Your Job Away? Streamlining Xen Project Contrib...
XPDDS19: Will Robots Automate Your Job Away? Streamlining Xen Project Contrib...
 
XPDDS19: Client Virtualization Toolstack in Go - Nick Rosbrook & Brendan Kerr...
XPDDS19: Client Virtualization Toolstack in Go - Nick Rosbrook & Brendan Kerr...XPDDS19: Client Virtualization Toolstack in Go - Nick Rosbrook & Brendan Kerr...
XPDDS19: Client Virtualization Toolstack in Go - Nick Rosbrook & Brendan Kerr...
 
XPDDS19: Implementing AMD MxGPU - Jonathan Farrell, Assured Information Security
XPDDS19: Implementing AMD MxGPU - Jonathan Farrell, Assured Information SecurityXPDDS19: Implementing AMD MxGPU - Jonathan Farrell, Assured Information Security
XPDDS19: Implementing AMD MxGPU - Jonathan Farrell, Assured Information Security
 

Recently uploaded

SQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure MalaysiaSQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure Malaysia
GohKiangHock
 
What is Master Data Management by PiLog Group
What is Master Data Management by PiLog GroupWhat is Master Data Management by PiLog Group
What is Master Data Management by PiLog Group
aymanquadri279
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
ToXSL Technologies
 
Requirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional SafetyRequirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional Safety
Ayan Halder
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
Peter Muessig
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
brainerhub1
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
kalichargn70th171
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
TaghreedAltamimi
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
XfilesPro
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 

Recently uploaded (20)

SQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure MalaysiaSQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure Malaysia
 
What is Master Data Management by PiLog Group
What is Master Data Management by PiLog GroupWhat is Master Data Management by PiLog Group
What is Master Data Management by PiLog Group
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
 
Requirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional SafetyRequirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional Safety
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 

XPDDS19: Core Scheduling in Xen - Jürgen Groß, SUSE

  • 1. Core scheduling in Xen Jürgen Groß Virtualization Kernel Developer SUSE Linux GmbH, jgross@suse.com
  • 2. 2 Agenda • What is “Core scheduling”? • Motivation • How does it work? • Performance numbers • Current state
  • 3. What is “Core scheduling”?
  • 4. 4 Today: Cpu scheduling • On each physical cpu the scheduler is deciding which vcpu is to be scheduled next • When taking other physical cpus into account only the load of the system is being looked at • Each vcpu can run on each physical cpu within some constraints (cpupools, pinning)
  • 5. 5 Cpu scheduling Core 0 Thread 0 Thread 1 Core 1 Thread 0 Thread 1 Core 2 Thread 0 Thread 1 Core 3 Thread 0 Thread 1 Dom0 vcpu0 Dom0 vcpu1 Dom0 vcpu2Dom0 vcpu3Dom0 vcpu4 Dom0 vcpu5 Dom0 vcpu6 Dom0 vcpu7 blocked
  • 6. 6 Cpu scheduling Core 0 Thread 0 Thread 1 Core 1 Thread 0 Thread 1 Core 2 Thread 0 Thread 1 Core 3 Thread 0 Thread 1 Dom0 vcpu0 Dom0 vcpu1 Dom0 vcpu2Dom0 vcpu3Dom0 vcpu4 Dom0 vcpu5 Dom0 vcpu6 Dom0 vcpu7 DomU vcpu3 DomU vcpu0 DomU vcpu2 DomU vcpu1 blocked
  • 7. 7 Cpu scheduling Core 0 Thread 0 Thread 1 Core 1 Thread 0 Thread 1 Core 2 Thread 0 Thread 1 Core 3 Thread 0 Thread 1 Dom0 vcpu0 Dom0 vcpu1 Dom0 vcpu2Dom0 vcpu3 Dom0 vcpu4 Dom0 vcpu5 Dom0 vcpu6 Dom0 vcpu7 DomU vcpu3 DomU vcpu0 DomU vcpu2 DomU vcpu1 runq blocked
  • 8. 8 Core scheduling • The scheduler is no longer acting on (v)cpus, but on (v)cores • All siblings (threads) of a core are scheduled together, scheduling for all siblings of a single core is synchronized • The relation between vcores and vcpus is fixed, in contrast to “core aware scheduling” where it might change • Pinning and cpupools are affecting cores (so e.g. pinning a vcpu to a specific physical cpu will pin all vcpus of the same vcore)
  • 9. 9 Core scheduling Core 0 Thread 0 Thread 1 Core 1 Thread 0 Thread 1 Core 2 Thread 0 Thread 1 Core 3 Thread 0 Thread 1 Dom0 vcpu0 Dom0 vcpu1 Dom0 vcpu4 Dom0 vcpu5 Dom0 vcpu6 Dom0 vcpu7 Dom0 vcpu2 Dom0 vcpu3 blocked
  • 10. 10 Core scheduling Core 0 Thread 0 Thread 1 Core 1 Thread 0 Thread 1 Core 2 Thread 0 Thread 1 Core 3 Thread 0 Thread 1 Dom0 vcpu0 Dom0 vcpu1 Dom0 vcpu4 Dom0 vcpu5 Dom0 vcpu6 Dom0 vcpu7 DomU vcpu0 DomU vcpu1 DomU vcpu3 DomU vcpu2 runq Dom0 vcpu2 Dom0 vcpu3 blocked
  • 12. 12 Cpu bugs • Several cpu bugs (e.g. L1TF, MDS) involve side channel attacks to steal data from threads of the same core • Core scheduling prohibits cross-domain side channel attacks • This lays the groundwork for a safe operation with SMT enabled
  • 13. 13 Fairness of accounting • Threads running on the same core share multiple resources (execution units, TLB, caches), so they are influencing each other regarding performance • With cpu scheduling a guest’s cpu performance is depending on the host load, not on that of the guest • In case the owner of the guest has to pay for the used cpu time the price will depend on host load
  • 14. 14 Guest side optimizations • The guest might decide to let run only one thread of a core to make use of all resources of that core in a single thread • Some threads might be able to make use of shared resources when running on the same core • The guest might want to mitigate against cpu bugs via core-aware scheduling
  • 15. How does it work?
  • 16. 16 Decoupling scheduling from cpus • In schedulers switch: ‒ vcpu→sched_unit ‒ pcpu→sched_resource • Scheduling decisions are the same as before • Amount of needed changes in sched_*.c rather high, but mostly mechanical • Scheduler.c is acting as abstraction layer for rest of the hypervisor • A sched_resource can be a cpu, core or socket
  • 17. 17 Syncing of context switches • When switching vcpus on a cpu all other vcpus of the same sched_unit must be switched on all other cpus of the sched_resource • Syncing is done in 2 steps: ‒ After decision is made to switch all other cpus of sched_resource must rendezvous ‒ Context switch is performed on all affected cpus in parallel, after that all cpus again rendezvous before they proceed • At no time two vcpus of different sched_units are running in guest mode on the same sched_resource
  • 18. 18 Syncing of context switches 1.Schedule event on one cpu 2.Take schedule lock, call scheduler for selecting next sched_unit to run 3.If no change, drop lock and exit, otherwise signal other cpus of sched_resource to process schedule_slave event, then drop lock and wait for others to join 4.Last one to join switches sched_unit on sched_resource, frees others to continue 5.On each cpu of sched_resource context is switched to new vcpu 6.Wait on each cpu until all context switches are done, then leave schedule handling
  • 19. 19 Idle vcpus • A guest vcpu becoming idle will result in the idle vcpu being scheduled • Only if the scheduler decides to switch sched_units a synchronized context switch is needed • No change of address space when switching between idle and guest vcpus without sched_unit switch (no change on x86) • An idle vcpu running in a guest sched_unit won’t run tasklets or do livepatching in order to avoid activities for other guests
  • 20. 20 Cpupools • Only complete sched_resources can be moved from/to cpupools • For easy support of cpu hotplug cpus not in any cpupool are not handled in units of sched_resources, but individually • At system boot cpupool0 is only created after all cpus are brought online, as otherwise the number of cpus per sched_resource isn’t yet known • Cpus not in any pool are no longer handled by the default scheduler, but by the new idle_scheduler
  • 21. 21 Cpu hotplug • SMT on/off switching at runtime disabled with core scheduling active • Offlining a cpu will now first remove the related sched_resource from cpupool0 if necessary • Onlining a cpu will add it only to cpupool0 in case the complete sched_resource is online
  • 22. 22 Cpupool0 Cpupools and cpu hotplug Core 0 Thread 0 Thread 1 Core 1 Thread 0 Thread 1 Core 2 Thread 0 Thread 1 Core 3 Thread 0 Thread 1
  • 23. 23 Cpupool0 Cpupools and cpu hotplug Core 0 Thread 0 Thread 1 Core 1 Thread 0 Thread 1 Core 2 Thread 0 Thread 1 Thread 0 Thread 1
  • 24. 24 Cpupool0 Cpupools and cpu hotplug Core 0 Thread 0 Thread 1 Core 1 Thread 0 Thread 1 Core 2 Thread 0 Thread 1 Thread 0
  • 26. 26 Test basics • All tests done by Dario Faggioli (SUSE) • Test machine was a 4-core system with HT (8 cpus) • Dom0 always with 8 vcpus, HVM domU with 4 or 8 vcpus • Scenarios (all results compared to “without patches, HT on”, positive numbers are better): ‒ Without patches (HT on/off) ‒ sched-gran=cpu (HT on/off) ‒ sched-gran=core • Benchmarks: ‒ Stream (memory benchmark, 4 tasks in parallel) ‒ Kernbench (kernel build with 2, 4, 8 or 16 threads) ‒ Hackbench (communication via pipes, machine saturated) ‒ Mutilate (load generator for memcached) ‒ Netperf (TCP/UDP/UNIX, two communicating tasks) ‒ Pgioperf (postgres micro-benchmark)
  • 27. 27 Dom0 only Unpatched, no-HT gran=cpu, HT gran=cpu, no- HT gran=core Stream -0.06% … +0.11% +0.11% … +0.50% -0.02% … +1.11% -7.37% … -3.82% Kernbench -36.9% ... +7.07% -0.61% … +0.21% -36.81% … +6.77% -5.98% … -0.01% Hackbench -67.08% … -43.44% -4.79% … +7.35% -68.30% … -37.19% -3.22% … +5.38% Mutilate -20.65% … +10.05% -0.63% … -0.08% -19.70% … +11.26% -11.40% … -2.23% Netperf -0.37% … +3.14% -4.38% … +1.00% -5.01% … +1.71% -33.08% … +6.71% Pgioperf -14.01% … -6.63% -12.54% … +1.15% -11.04% … +3.09% -6.71% … -4.04%
  • 28. 28 HVM domU, 4 vcpus Unpatched, no-HT gran=cpu, HT gran=cpu, no- HT gran=core Stream -6.67% … -0.25% -6.86% … -5.38% -1.35% … +0.23% -16.81% … -8.35% Kernbench +1.17% ... +14.52% +1.14% … +6.31% -0.03% … +13.52% -39.96% … -13.99% Hackbench -8.12% … +26.34% -33.51% … +10.54% -11.78% … +24.71% -43.25% … -4.07% Mutilate -0.49% … +9.76% -4.49% … -0.12% -3.12% … +8.80% -16.66% … -8.48% Netperf -8.04% … +11.83% -41.63% … +2.55% -10.78% … +17.42% -26.58% … +4.74% Pgioperf -1.47% … +3.57% -29.63% … +1.77% +0.28% … +5.48% +0.10% … +13.85%
  • 29. 29 HVM domU, 8 vcpus Unpatched, no-HT gran=cpu, HT gran=cpu, no- HT gran=core Stream +2.82% … +6.84% +0.47% … +5.07% +4.52% … +5.73% -14.91% … -9.55% Kernbench -46.41% ... +6.04% +0.46% … +1.70% -46.42% … +6.25% -6.91% … +0.19% Hackbench -50.23% … +4.17% -14.08% … +14.06% -48.40% … +7.08% -16.51% … +11.06% Mutilate -68.33% … -6.48% -1.11% … +2.33% -66.81% … -3.00% -45.50% … -6.17% Netperf -11.87% … +25.95% -15.48% … +14.57% -8.64% … +4.58% -18.00% … +1.81% Pgioperf +0.79% … +94.25% -1.62% … +19.02% -0.44% … +83.68% -49.56% … +0.51%
  • 30. 30 2 * HVM domU, 8 vcpus Unpatched, no-HT gran=cpu, HT gran=cpu, no- HT gran=core Stream -26.13% … -22.94% -0.87% … +1.45% -25.48% … -22.58% -13.34% … -6.37% Kernbench -50.26% ... -48.38% -0.24% … -0.13% -51.79% … -49.89% -23.98% … -17.84% Hackbench +15.02% … +35.59% -2.28% … +5.42% +10.41% … +34.48% -12.19% … +16.91% Mutilate -93.85% … -56.82% -2.19% … +8.57% -91.89% … -57.33% -83.70% … -13.03% Netperf -50.48% … -15.77% -16.39% … +7.61% -48.31% … -18.41% -36.22% … +4.41% Pgioperf -7.32% … -2.18% -231.22% … +0.30% -1605.80% … -5.63% -6035.64% … -30.76%
  • 32. 32 Patches already committed • Removing cpu on/offlining hooks in schedule.c and cpupool.c for suspend/resume handling • Small correction in sched_credit2.c for SMT-aware scheduling (needed for core scheduling) • Inline wrappers for calling per-scheduler functions from schedule.c • Test for mandatory per-scheduler functions instead of ASSERT() • Interface change for sched_switch_sched() per- scheduler function avoiding code duplication
  • 33. 33 Patches in review • V1 of the (rest-)series, currently 57 patches • 40 files changed, 3704 insertions(+), 2299 deletions(-) • Only small parts of V1 have been reviewed up to now (thanks to all reviewers!) • All comments on RFC-V1 and RFC-V2 have been addressed, those required some major reworks (partially due to renaming requests, partially conceptual ones)
  • 34. 34 Future plans • Rework of scheduler related files (move to common/sched/, making sched-if.h really scheduler private) • ARM support • Support of per-cpupool scheduling granularity • Support of per-cpupool SMT setting • Sane topology reporting to the guests • Add hypercall syncing between threads for full L1TF/MDS mitigation (probably kills performance)
  • 35. 35