Skip to main content
Back to USENIX
  • Conferences
  • Students
Sign in

USENIX Conference Policies

  • Event Code of Conduct
  • Conference Network Policy
  • Statement on Environmental Responsibility Policy

Kernel Plugins: When a VM Is Too Much

This paper presents kernel plugins, a framework for dynamic kernel specialization inspired by ideas borrowed from virtualization research. Plugins can be created and updated inexpensively on-the-fly and they can execute arbitrary user-supplied functions such that neither safety nor performance are compromised. Three key techniques are used to implement kernel plugins: (1) hardware fault isolation, (2) dynamic code generation, and (3) dynamic linking. Hardware fault isolation protects kernel-level services from plugin misbehavior, dynamic code generation enables rapid online creation of arbitrary plugins, and dynamic linking governs the kernel/plugin interface.

We discuss the design and implementation of the kernel plugin facility, as well as its advantages and shortcomings. Its use is demonstrated by a range of micro- and macro-benchmarks and a real-life application featuring plugins that dynamically transcode images served by a high-performance kernel web server. Benefits realized from plugins can be both qualitative (adapting services to clients' needs), and quantitative (improving performance through co-location of application plugin code with kernel services). Plugins are implemented in GNU/Linux on the Intel x86 platform. Reported performance results include plugin upcalls in 0.45-0.62 $\mu S$, dynamic code generation in 4 $mS$, and linking/unlinking in 3.1/1.6 $\mu S$ for an image grayscaling plugin - a dynamically code generated 66-line function written in a subset of C. All results are measured on an 866 MHz Pentium III.

Ivan Ganev, Georgia Institute of Technology

Greg Eisenhauer, Georgia Institute of Technology

Karsten Schwan, Georgia Institute of Technology

BibTeX
@inproceedings {269963,
author = {Ivan Ganev and Greg Eisenhauer and Karsten Schwan},
title = {Kernel Plugins: When a {VM} Is Too Much},
booktitle = {3rd Virtual Machine Research \& Technology Symposium (VM 04)},
year = {2004},
address = {San Jose, CA},
url = {https://www.usenix.org/conference/vm-04/kernel-plugins-when-vm-too-much},
publisher = {USENIX Association},
month = may
}
Download

Links

Paper: 
http://usenix.org/publications/library/proceedings/vm04/tech/full_papers/ganev/ganev.pdf
Paper (HTML): 
http://usenix.org/publications/library/proceedings/vm04/tech/full_papers/ganev/ganev_html/index.html
  • Log in or register to post comments

© USENIX
EIN 13-3055038

  • Privacy Policy
  • Contact Us