System Call Clustering: A Profile-Directed Optimization Technique

System Call Clustering: A Profile-Directed Optimization Technique
复制标题

DOI:
--
复制
发表时间:
2005
期刊:
--
影响因子:
--
通讯作者:
M. Rajagopalan;S. Debray;M. Hiltunen;R. Schlichting
M. Rajagopalan;S. Debray;M. Hiltunen;R. Schlichting
中科院分区:
其他
文献类型:
--
作者:
M. Rajagopalan;S. Debray;M. Hiltunen;R. Schlichting

文献摘要

被引文献

相似文献

考虑到该机制的典型高开销和在许多程序中发现的调用次数,用于优化系统调用的技术潜在地具有重要意义。在这里,提出了一种面向配置文件的方法来优化程序的系统调用行为,称为系统调用集群。在此方法中,配置文件用于标识可由单个调用替换的系统调用组,从而减少内核边界跨越的数量。通过利用代码移动、函数内联和循环展开等保持正确性的编译器转换,可以最大限度地优化集群的数量和大小。本文描述了系统调用聚类的算法基础,并给出了在Linux上使用一种称为多调用的新机制进行的初步实验结果。样例程序包括一个简单的文件复制程序和著名的MPEGPlay视频软件解码器。将该方法应用到后一种程序中,平均帧速率提高了25%,执行时间减少了20%,周期数减少了15%,这表明了该技术的潜力。
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.