TY - GEN
T1 - Privbox
T2 - 2022 USENIX Annual Technical Conference, ATC 2022
AU - Kuznetsov, Dmitry
AU - Morrison, Adam
N1 - Publisher Copyright:
© 2022 USENIX Annual Technical Conference, ATC 2022.All rights reserved.
PY - 2022
Y1 - 2022
N2 - System calls are the main method for applications to request services from the operating system, but their invocation incurs considerable overhead, which has been aggravated by mitigation mechanisms for transient execution attacks. Proposed approaches for reducing system call overhead all break the semantic equivalence between system calls and regular function calls (e.g., by making system calls asynchronous), and so their adoption requires rearchitecting applications. This paper proposes Privbox, a new approach for lightweight system calls that maintains the familiar synchronous, function-like system call model. Privbox allows an application to execute system call-intensive code in a semiprivileged, sandboxed execution mode, called a "privbox". Semi-privileged execution is architecturally similar to the kernel's privileged execution, which enables faster invocation of system calls, but the code is sandboxed to ensure that it cannot use its elevated privileges to compromise the system. We further propose semi-privileged access prevention (SPAP), a simple hardware architectural feature that alleviates much of Privbox's instrumentation overhead. We implement Privbox based on Linux and LLVM. Our evaluation on x86 (Intel Skylake) hardware shows that Privbox (1) speeds up system call invocation by 2.2×; (2) can increase throughput of I/O-threaded applications by up to 1.7×; and (3) can increase the throughput of real-world workloads such as Redis by up to 7.6% and 11%, without and with SPAP, respectively.
AB - System calls are the main method for applications to request services from the operating system, but their invocation incurs considerable overhead, which has been aggravated by mitigation mechanisms for transient execution attacks. Proposed approaches for reducing system call overhead all break the semantic equivalence between system calls and regular function calls (e.g., by making system calls asynchronous), and so their adoption requires rearchitecting applications. This paper proposes Privbox, a new approach for lightweight system calls that maintains the familiar synchronous, function-like system call model. Privbox allows an application to execute system call-intensive code in a semiprivileged, sandboxed execution mode, called a "privbox". Semi-privileged execution is architecturally similar to the kernel's privileged execution, which enables faster invocation of system calls, but the code is sandboxed to ensure that it cannot use its elevated privileges to compromise the system. We further propose semi-privileged access prevention (SPAP), a simple hardware architectural feature that alleviates much of Privbox's instrumentation overhead. We implement Privbox based on Linux and LLVM. Our evaluation on x86 (Intel Skylake) hardware shows that Privbox (1) speeds up system call invocation by 2.2×; (2) can increase throughput of I/O-threaded applications by up to 1.7×; and (3) can increase the throughput of real-world workloads such as Redis by up to 7.6% and 11%, without and with SPAP, respectively.
UR - http://www.scopus.com/inward/record.url?scp=85140977165&partnerID=8YFLogxK
M3 - ???researchoutput.researchoutputtypes.contributiontobookanthology.conference???
AN - SCOPUS:85140977165
T3 - Proceedings of the 2022 USENIX Annual Technical Conference, ATC 2022
SP - 233
EP - 247
BT - Proceedings of the 2022 USENIX Annual Technical Conference, ATC 2022
PB - USENIX Association
Y2 - 11 July 2022 through 13 July 2022
ER -