HyperTracing Tracing Through Virtualization Layers Abderrahmane Benbachir Linux Plumbers Conference, September, 2017 École Polytechnique de Montréal Laboratoire DORSAL
What is hypertracing? Hy Hypertra racing cing = Offloading traces from virtual machine to host Nested Virtual Machine Trace L 2 App tracer data Synchronization Virtual Machine Guest kernel probes tracer App Qemu data L 1 offloader Guest kernel probes tracer App Qemu data probes sync Host L 0 Hypervisor async buffer POLYTECHNIQUE MONTREAL – Abderrahmane Benbachir (Abder)
How to do hypertracing ? Communication Channels Shared Socket Memory (Virtio-serial) Network TCP/IP Hypercall Virtual Machine kernel offloader tracer consumer data Qemu probes sync Host async buffer POLYTECHNIQUE MONTREAL – Abderrahmane Benbachir (Abder)
Hypertracing With Hypercall POLYTECHNIQUE MONTREAL – Abderrahmane Benbachir (Abder)
Nested Virtualization Remove Exit Multiplication L n VM #n L n-1 VM #n-1 ... L 3 VM #3 ... L 2 VM #2 ... L 1 VM #1 Qemu (not involved) L 0 Host Hypervisor Patch Hardware Single level Two levels Three levels POLYTECHNIQUE MONTREAL – Abderrahmane Benbachir (Abder)
Micro-Benchmarks Hypercall Overhead Hardware : Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz (x86_64) EPT-on-EPT-on-EPT x33 Exit-handling code in the hypervisor is slower when run in L1 or L2 than the same code running in L0 Transition between L1, L2, ... Ln involve an exit to L0 and then an entry. x33 [+ patch] [+ patch] POLYTECHNIQUE MONTREAL – Abderrahmane Benbachir (Abder)
Demo Hypergraph POLYTECHNIQUE MONTREAL – Abderrahmane Benbachir (Abder)
Feedbacks & Questions abderrahmane.benbachir@polymtl.ca https://github.com/abenbachir POLYTECHNIQUE MONTREAL – Abderrahmane Benbachir (Abder)
Recommend
More recommend