Back To Schedule
Thursday, July 11 • 2:20pm - 2:40pm
Hodor: Intra-Process Isolation for High-Throughput Data Plane Libraries

Sign up or log in to save this to your schedule, view media, leave feedback and see who's attending!

As network, I/O, accelerator, and NVM devices capable of a million operations per second make their way into data centers, the software stack managing such devices has been shifting from implementations within the operating system kernel to more specialized kernel-bypass approaches. While the in-kernel approach guarantees safety and provides resource multiplexing, it imposes too much overhead on microsecond-scale tasks. Kernel-bypass approaches improve throughput substantially but sacrifice safety and complicate resource management: if applications are mutually distrusting, then either each application must have exclusive access to its own device or else the device itself must implement resource management.

This paper shows how to attain both safety and performance via intra-process isolation for data plane libraries. We propose protected libraries as a new OS abstraction which provides separate user-level protection domains for different services (e.g., network and in-memory database), with performance approaching that of unprotected kernel bypass. We also show how this new feature can be utilized to enable sharing of data plane libraries across distrusting applications. Our proposed solution uses Intel's memory protection keys (PKU) in a safe way to change the permissions associated with subsets of a single address space. In addition, it uses hardware watchpoints to delay asynchronous event delivery and to guarantee independent failure of applications sharing a protected library.

We show that our approach can efficiently protect high-throughput in-memory databases and user-space network stacks. Our implementation allows up to 2.3 million library entrances per second per core, outperforming both kernel-level protection and two alternative implementations that use system calls and Intel's VMFUNC switching of user-level address spaces, respectively.


Mohammad Hedayati

University of Rochester

Spyridoula Gravani

University of Rochester

Ethan Johnson

University of Rochester

John Criswell

University of Rochester

Michael L. Scott

University of Rochester

Kai Shen


Thursday July 11, 2019 2:20pm - 2:40pm PDT
USENIX ATC Track I: Grand Ballroom I–VI