Evaluating Architecture-Dependent Linux Performance

Modern operating system kernels, such as Linux, address the trade-off between portability and performance by exposing a generic interface to user space programs, while maintaining architecture-dependent functionality as a set of separate components inside the kernel space. In particular, performance can only be achieved by ensuring that the architecture-dependent code takes advantage of the facilities offered by the underlying hardware. In turn, architecture-dependent optimization requires tools to observe the system's behaviour and evaluate its performance. In this paper we analyze the state-of-the art performance measurement frameworks for the Linux kernel. We describe our experience with said frameworks in a scenario comprising a Linux kernel running Para virtualized on top of an L4 micro kernel, and assess their suitability for our scenario by using them to uncover a set of particular performance issues. In this respect we demonstrate their effectiveness through a detailed evaluation and propose an approach to generalize their usage for evaluating architecture-dependent performance.

[1]  Frank Bellosa,et al.  Energy Management for Hypervisor-Based Virtual Machines , 2007, USENIX Annual Technical Conference.

[2]  Gilberto Contreras,et al.  Power prediction for Intel XScale processors using performance monitoring unit events , 2005 .

[3]  R. Krishnakumar Kprobes—a Kernel Debugger , 2006 .

[4]  Adam Lackorzynski,et al.  Virtual Processors as Kernel Interface , 2010 .

[5]  Jeffrey C. Mogul,et al.  Brittle metrics in operating systems research , 1999, Proceedings of the Seventh Workshop on Hot Topics in Operating Systems.

[6]  S. Turner,et al.  Performance Analysis Using the MIPS R10000 Performance Counters , 1996, Proceedings of the 1996 ACM/IEEE Conference on Supercomputing.

[7]  Michael D. Smith,et al.  The measured performance of personal computer operating systems , 1996, TOCS.

[8]  Jack J. Dongarra,et al.  A Scalable Cross-Platform Infrastructure for Application Performance Tuning Using Hardware Counters , 2000, ACM/IEEE SC 2000 Conference (SC'00).

[9]  Jack Dongarra,et al.  Using PAPI for Hardware Performance Monitoring on Linux Systems , 2001 .

[10]  Trent Jaeger,et al.  Achieved IPC performance (still the foundation for extensibility) , 1997, Proceedings. The Sixth Workshop on Hot Topics in Operating Systems (Cat. No.97TB100133).

[11]  Ravi Kothari,et al.  Identifying sources of Operating System Jitter through fine-grained kernel instrumentation , 2007, 2007 IEEE International Conference on Cluster Computing.

[12]  Marc Shapiro Proceedings of the 9th workshop on ACM SIGOPS European workshop: beyond the PC: new challenges for the operating system , 2000 .

[13]  Gernot Heiser,et al.  Wombat: A portable user-mode Linux for embedded systems , 2005 .

[14]  Michael D. Smith,et al.  The measured performance of personal computer operating systems , 1995, SOSP.

[15]  Frank Bellosa,et al.  The benefits of event: driven energy accounting in power-sensitive systems , 2000, ACM SIGOPS European Workshop.

[16]  R. Krishnakumar Kernel korner: kprobes-a kernel debugger , 2005 .

[17]  Jochen Liedtke,et al.  On micro-kernel construction , 1995, SOSP.

[18]  Margaret Martonosi,et al.  Power prediction for Intel XScale/spl reg/ processors using performance monitoring unit events , 2005, ISLPED '05. Proceedings of the 2005 International Symposium on Low Power Electronics and Design, 2005..

[19]  Carl Staelin,et al.  lmbench: Portable Tools for Performance Analysis , 1996, USENIX Annual Technical Conference.

[20]  Sally A. McKee,et al.  Real time power estimation and thread scheduling via performance counters , 2009, CARN.