Efficient and safe execution of user-level code in the kernel

This project has two goals. The first goal is to improve application performance by reducing context switches and data copies. We do this by either running select sections of the application in kernel-mode, or by creating new, more efficient system calls. The second goal is to ensure that kernel safety is not violated when running user-level code in the kernel. We do this by implementing various hardware- and software-based techniques for runtime monitoring of memory buffers, pointers, as well as higher-level, OS-specific constructs such as spin-locks and reference counters; the latter techniques can also be used for code written specifically for the OS. We prototyped several of these techniques. For certain applications, we demonstrate performance improvements as high as 80%. Moreover, our kernel safety checks show overheads that are as little as 2%.

[1]  Brent Callaghan,et al.  NFS Version 3 Protocol Specification , 1995, RFC.

[2]  Barton P. Miller,et al.  Using Dynamic Kernel Instrumentation for Kernel and Application Tuning , 1999, Int. J. High Perform. Comput. Appl..

[3]  Robert Wahbe,et al.  Efficient software-based fault isolation , 1994, SOSP '93.

[4]  A. Purohit A System for Improving Application Performance Through System Call Composition , 2003 .

[5]  Jeffrey C. Mogul Observing TCP dynamics in real networks , 1992, SIGCOMM 1992.

[6]  Brian N. Bershad,et al.  Extensibility safety and performance in the SPIN operating system , 1995, SOSP.

[7]  Wu-chun Feng,et al.  MAGNET: a tool for debugging, analyzing and adapting computing systems , 2003, CCGrid 2003. 3rd IEEE/ACM International Symposium on Cluster Computing and the Grid, 2003. Proceedings..

[8]  George C. Necula,et al.  CCured: type-safe retrofitting of legacy code , 2002, POPL '02.

[9]  E AndersonThomas,et al.  Efficient software-based fault isolation , 1993 .

[10]  Matti A. Hiltunen,et al.  Cassyopia: Compiler Assisted System Optimization , 2003, HotOS.

[11]  John A. Kunze,et al.  A trace-driven analysis of the UNIX 4.2 BSD file system , 1985, SOSP '85.

[12]  David Robinson,et al.  NFS version 4 Protocol , 2000, RFC.

[13]  Margo I. Seltzer,et al.  Dealing with disaster: surviving misbehaved kernel extensions , 1996, OSDI '96.

[14]  Erez Zadok,et al.  FIST: a language for stackable file systems , 2000, OPSR.

[15]  Mark Russinovich,et al.  High-Performance Memory-Based Web Servers: Kernel and User-Space Performance , 2001, USENIX ATC, General Track.

[16]  Olatunji Ruwase,et al.  A Practical Dynamic Buffer Overflow Detector , 2004, NDSS.

[17]  Jeffrey Katcher,et al.  PostMark: A New File System Benchmark , 1997 .

[18]  Rolf E. Riesen,et al.  Using Kernel Extensions to Decrease the Latency of User-Level Communication Primitives , 1996 .

[19]  Dawson R. Engler,et al.  ASHs: application-specific handlers for high-performance messaging , 1997, TNET.

[20]  Andrea C. Arpaci-Dusseau,et al.  Semantically-Smart Disk Systems , 2003, FAST.

[21]  Larry L. Peterson,et al.  Fbufs: a high-bandwidth cross-domain transfer facility , 1994, SOSP '93.