A portable kernel abstraction for low-overhead ephemeral mapping management

Khaled Elmeleegy, Anupam Chanda, Anna L. Cox, Willy Zwaenepoel · 2005

Modern operating systems create ephemeral virtual-to-physical mappings for a variety of pur-poses, ranging from the implementation of inter-process communication to the implementation of process tracing and debugging. With succeed-ing generations of processors the cost of creat-ing ephemeral mappings is increasing, particu-larly when an ephemeral mapping is shared by multiple processors. To reduce the cost of ephemeral mapping man-agement within an operating system kernel, we introduce the sf buf ephemeral mapping in-terface. We demonstrate how in several kernel subsystems — including pipes, memory disks, sockets, execve(), ptrace(), and the vnode pager — the current implementation can be re-placed 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 imple-mentation reduces the cost of ephemeral mapping management by reusing wherever possible ex-isting virtual-to-physical address mappings. We evaluate the sf buf interface for the pipe, mem-ory 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 alto-gether. 1

Read the paper · More papers on PaperTik