Virtines: Virtualization at Function Call Granularity

04/14/2021
by   Nicholas Wanninger, et al.
0

Virtual execution environments provide strong isolation, on-demand infrastructure, simplified device models, and many other benefits for systems and application programmers. However, these environments are often perceived as heavyweight and rife with performance pitfalls for fine-grained or low-latency tasks. While others have shown that a virtual environment's footprint can be drastically reduced by paring down the guest and host software stacks, in this paper we take a different approach. We probe the limits of fine-grained, virtual execution by investigating the viability of hardware virtualized environments at function call granularity. We introduce a new abstraction called a virtine, or virtualized subroutine, and present the design of a new microhypervisor called Wasp that enables them. Through a series of examples we show that Wasp can enable virtines with start-up latencies as low as 100 μs. We also provide two convenient programming interfaces to virtines, using the Rust language and using extensions to C. Using these extensions we implement a simple HTTP server and integrate virtines into an off-the-shelf implementation of OpenSSL.

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset
Success!
Error Icon An error occurred

Sign in with Google

×

Use your Google Account to sign in to DeepAI

×

Consider DeepAI Pro