The University of Arizona
banner image

  System Call Clustering: A Profile-Directed Optimization Technique

Mohan Rajagopalan   Saumya Debray
Department of Computer Science
University of Arizona
Tucson, AZ 85721, U.S.A.

Matti A. Hiltunen   Richard D. Schlichting
AT&T Labs - Research
Florham Park
NJ 07932, U.S.A.

 

Abstract
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.