Lock Holder Preemption Problem in Multiprocessor Virtualization
Burak Selcuk
RheinMain University of Applied Sciences Informatik Master
August 24, 2017
Burak Selcuk LHP Problem in Multiprocessor Virtualization 1 / 18
Lock Holder Preemption Problem in Multiprocessor Virtualization - - PowerPoint PPT Presentation
Lock Holder Preemption Problem in Multiprocessor Virtualization Burak Selcuk RheinMain University of Applied Sciences Informatik Master August 24, 2017 Burak Selcuk LHP Problem in Multiprocessor Virtualization 1 / 18 Table of Contents
RheinMain University of Applied Sciences Informatik Master
Burak Selcuk LHP Problem in Multiprocessor Virtualization 1 / 18
1
2
3
4
Burak Selcuk LHP Problem in Multiprocessor Virtualization 2 / 18
Introduction
Burak Selcuk LHP Problem in Multiprocessor Virtualization 3 / 18
Basics Spinlocks
Burak Selcuk LHP Problem in Multiprocessor Virtualization 4 / 18
Basics Virtualization
Burak Selcuk LHP Problem in Multiprocessor Virtualization 5 / 18
Basics Virtualization
Burak Selcuk LHP Problem in Multiprocessor Virtualization 6 / 18
Basics Virtualization
Burak Selcuk LHP Problem in Multiprocessor Virtualization 7 / 18
Basics Lock Holder Preemption
vCPU 1 vCPU 2 vCPU 0
Acquire lock, enter critical section Preemption through hypervisor Acquire lock, start busy waiting Leave critical section, free lock
vCPU 0
Busy waiting Acquire lock, enter critical section
pCPU 0 pCPU 1
CPU wasting (caused by LHP) Preemption through hypervisor
VM A VM B Burak Selcuk LHP Problem in Multiprocessor Virtualization 8 / 18
Solutions Overview
Burak Selcuk LHP Problem in Multiprocessor Virtualization 9 / 18
Solutions Co-scheduling
Burak Selcuk LHP Problem in Multiprocessor Virtualization 10 / 18
Solutions Co-scheduling
vCPU 2 vCPU 4 vCPU 0 pCPU 0 pCPU 1 VM A VM C vCPU 3 idle vCPU 1 vCPU 0 VM B
vCPU 1
Burak Selcuk LHP Problem in Multiprocessor Virtualization 11 / 18
Solutions Co-scheduling
idle vCPU 1 vCPU 0 pCPU 0 pCPU 1 VM A VM C vCPU 2 VM B
I/O vCPU 3 idle vCPU 0
Burak Selcuk LHP Problem in Multiprocessor Virtualization 12 / 18
Solutions Guest OS Modification
Burak Selcuk LHP Problem in Multiprocessor Virtualization 13 / 18
Solutions Guest OS Modification
Acquire lock, make hypercall to delay preemption for n microseconds Preemption point, delay preemption, set flag Leave critical section, check flag, make hypercall to reschedule vCPU at most n microseconds
pCPU 0 vCPU 0
Burak Selcuk LHP Problem in Multiprocessor Virtualization 14 / 18
Solutions Guest OS Modification
Burak Selcuk LHP Problem in Multiprocessor Virtualization 15 / 18
Solution in practice
Burak Selcuk LHP Problem in Multiprocessor Virtualization 16 / 18
End
Burak Selcuk LHP Problem in Multiprocessor Virtualization 17 / 18
End Monitoring through Hypervisor
Burak Selcuk LHP Problem in Multiprocessor Virtualization 18 / 18