A Portable Kernel Abstraction for Low-Overhead Ephemeral Mapping Management

Abstract

Modern operating systems create ephemeral virtual-to-physical mappings for a variety of purposes, ranging from the implementation of interprocess communication to the implementation of process tracing and debugging. With succeeding generations of processors the cost of creating ephemeral mappings is increasing, particularly when an ephemeral mapping is shared by multiple processors. To reduce the cost of ephemeral mapping management within an operating system kernel, we introduce the sf buf ephemeral mapping interface. We demonstrate how in several kernel subsystems — including pipes, memory disks, sockets, execve(), ptrace(), and the vnode pager — the current implementation can be replaced by calls to the sf buf interface. We describe the implementation of the sf buf interface on the 32-bit i386 architecture and the 64-bit amd64 architecture. This implementation reduces the cost of ephemeral mapping management by reusing wherever possible existing virtual-to-physical address mappings. We evaluate the sf buf interface for the pipe, memory disk and networking subsystems. Our results show that these subsystems perform significantly better when using the sf buf interface. On a multiprocessor platform interprocessor interrupts are greatly reduced in number or eliminated altogether.

Extracted Key Phrases

20 Figures and Tables

Cite this paper

@inproceedings{Elmeleegy2005APK, title={A Portable Kernel Abstraction for Low-Overhead Ephemeral Mapping Management}, author={Khaled Elmeleegy and Anupam Chanda and Alan L. Cox and Willy Zwaenepoel}, booktitle={USENIX Annual Technical Conference, General Track}, year={2005} }