System Call Clustering: A Profile-Directed Optimization Technique

Techniques for optimizing system calls are potentially significant given the typically high overhead of the mechanism and the number of invocations found in many programs. Here, a profile-directed approach to optimizing a program’s system call behavior called system call clustering is presented. In this approach, profiles are used to identify groups of systems calls that can be replaced by a single call, thereby reducing the number of kernel boundary crossings. The number and size of clusters that can be optimized is maximized by exploiting correctness preserving compiler transformations such as code motion, function inlining, and loop unrolling. This paper describes the algorithmic basics of system call clustering and presents initial experimental results performed on Linux using a new mechanism called multi-calls. The sample programs include a simple file copy program and the well-known mpeg play video software decoder. Applying the approach to the latter program yielded an average 25% improvement in frame rate, 20% reduction in execution time, and 15% reduction in the number of cycles, suggesting the potential of this technique.

[1]  Bryan Henderson Linux Loadable Kernel Module HOWTO , 2006 .

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

[3]  R. Sekar,et al.  Synthesizing Fast Intrusion Prevention/Detection Systems from High-Level Specifications , 1999, USENIX Security Symposium.

[4]  Calton Pu,et al.  The Synthesis Kernel , 1988, Comput. Syst..

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

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

[7]  David Banks,et al.  User-space protocols deliver high performance to applications on a low-cost Gb/s LAN , 1994, SIGCOMM '94.

[8]  Dawson R. Engler,et al.  Exokernel: an operating system architecture for application-level resource management , 1995, SOSP.

[9]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[10]  Calton Pu,et al.  Optimistic incremental specialization: streamlining a commercial operating system , 1995, SOSP.

[11]  Anantha Chandrakasan,et al.  JouleTrack: a web based tool for software energy profiling , 2001, DAC '01.

[12]  Matti A. Hiltunen,et al.  Profile-directed optimization of event-based programs , 2002, PLDI '02.

[13]  Christian Poellabauer,et al.  Lightweight kernel/user communication for real-time and multimedia applications , 2001, NOSSDAV '01.

[14]  Saumya K. Debray,et al.  Code Specialization Based on Value Profiles , 2000, SAS.

[15]  Abraham Silberschatz,et al.  The Pebble Component-Based Operating System , 1999, USENIX Annual Technical Conference, General Track.

[16]  Richard McDougall,et al.  Solaris Internals: Core Kernel Architecture , 2000 .

[17]  Chris I. Dalton,et al.  User-space protocols deliver high performance to applications on a low-cost Gb/s LAN , 1994, SIGCOMM 1994.

[18]  Stephanie Forrest,et al.  A sense of self for Unix processes , 1996, Proceedings 1996 IEEE Symposium on Security and Privacy.