Software Systems

Correct, fast, maintainable – choose any three!


Bernard Blackham and Gernot Heiser


The common-case IPC handler in microkernels, referred to as the fastpath, is performance-critical and thus is often optimised using hand-written assembly. However, compiler technology has advanced significantly in the past decade, which suggests that we should re-evaluate this approach.

We present a case study of optimising the IPC fastpath in the seL4 microkernel. This fastpath is written in C and relies on an optimising C compiler for good performance. We present our techniques in modifying the C sources to assist with compiler optimisation. We compare our results with a hand-optimised assembly implementation, which gains no extra benefit from hand-tuning.

Copyright © 2012, ACM. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in the proceedings of APSys '12, July 23-24, 2012, Seoul, Korea.

BibTeX Entry

    numpages         = {7},
    doi              = {10.1145/2349896.2349909},
    author           = {Bernard Blackham and Gernot Heiser},
    month            = {jul},
    year             = {2012},
    title            = {Correct, Fast, Maintainable -- Choose Any Three!},
    articleno        = {13},
    booktitle        = {Proceedings of the 3rd Asia-Pacific Workshop on Systems (APSys)},
    pages            = {13:1--13:7},
    address          = {Seoul, Korea}