Automated Object Layout Optimization in a Portable Microkernel

  • Author:

    Uwe Dannowski

  • Source:

    Proceedings of the MIKES 2007: First International Workshop on MicroKernels for Embedded Systems, Sydney, Australia, January 16, 2007, pp. 22-28

  • Date: 16.01.2007
  • Abstract:

    In a portable microkernel, the increasing diversity of target configurations can lead to software complexity problems. Insufficiencies of current kernel programming techniques manifest in excessive preprocessor use for code selection, in code duplication, and in suboptimal performance. Object-oriented programming can solve the portability problems. However, the language implementation of inheritance often enforces a memory layout of objects that is governed by inheritance relations, not by access patterns, resulting in suboptimal cache usage on the kernel's critical path.

    In this paper we present an automated approach to eliminating inheritance-induced overheads in selected performance-critical data structures. We combine class flattening and profile-guided data member reordering and heavily rely on microkernel characteristics. Evaluation in the L4 microkernel indicates that we can use fine-grained class hierarchies in the kernel at no cost and still optimize for the target system, allowing for portable yet efficient microkernels.


        author = {Uwe Dannowski},
        title = {Automated Object Layout Optimization in a Portable Microkernel},
        booktitle = {Proceedings of the MIKES 2007: First International Workshop on MicroKernels for Embedded Systems},
        address = {Sydney, Australia},
        month = Jan # "~16",
        year = 2007,
        pages = {22--28},
        affiliation = {University of Karlsruhe, Germany}