Priority Inheritance: Hack or Error

The subject of priority inheritance has come up again on the Linux kernel mailing list and Torvalds correctly notes

“Friends don’t let friends use priority inheritance”. Just don’t do it. If you really need it, your system is broken anyway.

“Priority inheritance” is similar to “soft real-time” in that both are efforts to avoid building software to specification. I put together a detailed critique in “Against Priority Inheritance”. There are two basic problems with priority inheritance (1) the algorithms are inefficient, complex, and inherently buggy and (2) any claimed benefits can be obtained in a more durable and efficient manner via good design.

The RTLinux core does not support priority inheritance for a simple reason: priority inheritance is incompatible with reliable real-time system design. Priority inheritance is neither efficient nor reliable. Implementations are either incomplete (and unreliable) or surprisingly complex and intrusive.

Doug Locke’s response to “Against Priority Inheritance” seems to me to have to evade the issue in the standard way: read his response and see for yourself. It’s not enough to say “yes, of course you need a proper implementation” since one of the points of the paper is that proper implementations are fragile, expensive, and unreliable.

Update: If you want technical details on the can-o-worms PI opens – read the great description by Bryan Crantril at Sun.

1 Comment on Priority Inheritance: Hack or Error

  1. I warn you that the link to the papers Against Priority Inheritance is broken!

    I have read your paper on linuxdevices when it appears, I know the problem and I also hate PI, so for me isn’t a real problem, but probably the paper will be useful for “new” users.

Comments are closed.