Overview
Syllabus
Intro
Driver vulnerabilities
Driver isolation architecture
Isolation performance
Challenge: Large interface boundary
Challenge: Complex data structures
Challenge: Low-level kernel/C idioms
Challenge: Concurrency primitives
KSplit design choices
Shared field analysis
Program Dependence Graph
Boundary Data Access Analysis: exa
Atomic Region Analysis
Infer marshaling requirements for po
Classify Pointers with Nescheck
Evaluation
Ixgbe: data synchronization optimization
Ixgbe: synchronization primitives
Ixgbe: pointer classification
Ixgbe: Manual work
Manual Work average across isolated
Performance overhead: memcached
Conclusions
Taught by
USENIX