a virtualized separation kernel for mixed criticality systems

21
Introduction Architecture Performance Conclusions Ongoing and Future Work A Virtualized Separation Kernel for Mixed Criticality Systems Ye Li, Richard West and Eric Missimer Boston University March 2nd, 2014

Upload: others

Post on 05-Nov-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: A Virtualized Separation Kernel for Mixed Criticality Systems

Introduction Architecture Performance Conclusions Ongoing and Future Work

A Virtualized Separation Kernel for MixedCriticality Systems

Ye Li, Richard West and Eric Missimer

Boston University

March 2nd, 2014

Page 2: A Virtualized Separation Kernel for Mixed Criticality Systems

Introduction Architecture Performance Conclusions Ongoing and Future Work

Motivation

I Mixed criticality systems requires component isolation forsafety and security

I Integrated Modular Avionics (IMA), Automobiles

I Multi-/many-core processors are increasingly popular inembedded systems

I Multi-core processors can be used to consolidate services ofdifferent criticality onto a single platform

Page 3: A Virtualized Separation Kernel for Mixed Criticality Systems

Introduction Architecture Performance Conclusions Ongoing and Future Work

Motivation

I Many processors now feature hardware virtualizationI ARM Cortex A15, Intel VT-x, AMD-V

I Hardware virtualization provides opportunity to efficientlypartition resources amongst guest VMs

H/W Virtualization + Resource Partitioning = Platform for MixedCriticality Systems

Page 4: A Virtualized Separation Kernel for Mixed Criticality Systems

Introduction Architecture Performance Conclusions Ongoing and Future Work

Related Work

Existing virtualized solutions for resource partitioning

I Wind River Hypervisor, XtratuM, PikeOS

I Xen, PDOM, LPAR

Traditional Virtual Machine approaches too expensive

I Require traps to VMM (a.k.a. hypervisor) to multiplex andmanage machine resources for multiple guests

I e.g., 1500 clock cycles VM-Enter/Exit on Xeon E5506

We want to eliminates hypervisor intervention during normalvirtual machine operations

Page 5: A Virtualized Separation Kernel for Mixed Criticality Systems

Introduction Architecture Performance Conclusions Ongoing and Future Work

Contribution

Quest-V Separation Kernel

I Uses H/W virtualization to partition resources amongstservices of different criticalities

I Each partition, or sandbox, manages its own CPU, memory,and I/O resources without hypervisor intervention

I Hypervisor only needed for bootstrapping system + managingcommunication channels between sandboxes

Page 6: A Virtualized Separation Kernel for Mixed Criticality Systems

Introduction Architecture Performance Conclusions Ongoing and Future Work

Overview

Page 7: A Virtualized Separation Kernel for Mixed Criticality Systems

Introduction Architecture Performance Conclusions Ongoing and Future Work

Memory Partitioning

I Guest kernel page tables for GVA-to-GPA translationI EPTs (a.k.a. shadow page tables) for GPA-to-HPA translation

I EPTs modifiable only by monitorsI Intel VT-x: 1GB address spaces require 12KB EPTs with 2MB

superpaging

Page 8: A Virtualized Separation Kernel for Mixed Criticality Systems

Introduction Architecture Performance Conclusions Ongoing and Future Work

Memory Partitioning

Page 9: A Virtualized Separation Kernel for Mixed Criticality Systems

Introduction Architecture Performance Conclusions Ongoing and Future Work

Quest-V Linux Memory Layout

Page 10: A Virtualized Separation Kernel for Mixed Criticality Systems

Introduction Architecture Performance Conclusions Ongoing and Future Work

I/O Partitioning

I I/O devices statically partitionedI Device interrupts directed to each sandbox

I Eliminates monitor from control pathI I/O APIC redirection tables protected by EPT

I EPTs prevent illegal access to memory mapped I/O registers

I Port-addressed I/O registers protected by bitmap in VMCSI Monitor maintains PCI device ”blacklist” for each sandbox

I (Bus No., Device No., Function No.) of restricted PCI devices

Page 11: A Virtualized Separation Kernel for Mixed Criticality Systems

Introduction Architecture Performance Conclusions Ongoing and Future Work

I/O Partitioning

PCI devices in blacklist hidden from guest during enumeration

I Data Port: 0xCFC Address Port: 0xCF8

Page 12: A Virtualized Separation Kernel for Mixed Criticality Systems

Introduction Architecture Performance Conclusions Ongoing and Future Work

CPU Partitioning

I Scheduling local to each sandboxI Avoids monitor interventionI Partitioned rather than global

I Native Quest kernel uses VCPU real-time schedulingframework (RTAS ’11)

Page 13: A Virtualized Separation Kernel for Mixed Criticality Systems

Introduction Architecture Performance Conclusions Ongoing and Future Work

Linux Front End

I Most likely serving low criticality legacy services

I Based on Puppy Linux 3.8.0

I Runs entirely out of RAM including root filesystemI Low-cost paravirtualization

I Less than 100 linesI Restrict observable memoryI Adjust DMA offsets

I Grant access to VGA framebuffer + GPU

I Quest native SBs tunnel terminal I/O to Linux via sharedmemory using special drivers

Page 14: A Virtualized Separation Kernel for Mixed Criticality Systems

Introduction Architecture Performance Conclusions Ongoing and Future Work

Quest-V Linux Screenshot

Page 15: A Virtualized Separation Kernel for Mixed Criticality Systems

Introduction Architecture Performance Conclusions Ongoing and Future Work

Quest-V Linux Screenshot

Page 16: A Virtualized Separation Kernel for Mixed Criticality Systems

Introduction Architecture Performance Conclusions Ongoing and Future Work

Monitor Intervention

During normal operation, we observed only one monitor trap every3 to 5 minutes caused by cpuid.

No I/O Partitioning I/O Partitioning (Block COM and NIC)Exception 0 9785CPUID 502 497VMCALL 2 2I/O Inst 0 11412EPT Violation 0 388XSETBV 1 1

Table : Monitor Trap Count During Linux Sandbox Initialization

Page 17: A Virtualized Separation Kernel for Mixed Criticality Systems

Introduction Architecture Performance Conclusions Ongoing and Future Work

Quest-V Performance Overhead

I Measured time to play back 1080P MPEG2 video from thex264 HD video benchmark

I Intel Core i5-2500K HD3000 Graphics

0

5

10

15

20

25

30

35

Linux Quest Linux Quest Linux 4SB

Tim

e (

second)

VC (VO=NULL)VC

VO

Page 18: A Virtualized Separation Kernel for Mixed Criticality Systems

Introduction Architecture Performance Conclusions Ongoing and Future Work

Memory Virtualization Cost

I Example Data TLB overheads

I Intel Core i5-2500K 4-core, shared 2nd-level TLB (4KB pages,512 entries)

0

50000

100000

150000

200000

250000

300000

0 100 200 300 400 500 600 700 800

Tim

e (

CP

U C

ycle

s)

Number of Pages

Quest-V VM ExitQuest-V TLB Flush

Quest TLB FlushQuest-V Base

Quest Base

Page 19: A Virtualized Separation Kernel for Mixed Criticality Systems

Introduction Architecture Performance Conclusions Ongoing and Future Work

Conclusions

I Quest-V separation kernel built from scratchI Distributed system on a chipI Uses (optional) hardware virtualization to partition resources

into sandboxesI Protected communication channels between sandboxes

I Sandboxes can have different criticalitiesI Native Quest sandbox for critical servicesI Linux front-end for less critical legacy services

I Sandboxes responsible for local resource managementI Avoids monitor involvement

Page 20: A Virtualized Separation Kernel for Mixed Criticality Systems

Introduction Architecture Performance Conclusions Ongoing and Future Work

Ongoing and Future Work

I Online fault detection and recoveryI Technologies for secure monitors

I e.g., Intel TXT, Intel VT-d

I Micro-architectural Resource PartitioningI e.g., shared caches, memory bus

Page 21: A Virtualized Separation Kernel for Mixed Criticality Systems

Introduction Architecture Performance Conclusions Ongoing and Future Work

Thank You!

For more details, preliminary results, Quest-V source code andforum discussions. Please visit:

www.questos.org