Correct, fast, maintainable – choose any three!

Authors

Bernard Blackham and Gernot Heiser

    School of Computer Science and Engineering
    University of New South Wales
    Sydney 2052 Australia
    
    NICTA, Sydney, Australia

Abstract

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

  @inproceedings{Blackham_Heiser_12,
    numpages         = {7},
    doi              = {10.1145/2349896.2349909},
    title            = {Correct, Fast, Maintainable -- Choose Any Three!},
    booktitle        = {3rd APSys},
    author           = {Bernard Blackham and Gernot Heiser},
    year             = {2012},
    month            = {Jul},
    address          = {Seoul, Korea},
    articleno        = {13},
    pages            = {13:1--13:7}
  }

Download

Served by Apache on Linux on seL4