[coyotos-dev] IPC redesign issues, goals, and options

Jonathan S. Shapiro shap at eros-os.com
Wed Feb 14 10:24:46 CST 2007

On Wed, 2007-02-14 at 10:09 +0000, Sam Mason wrote:
> On Tue, Feb 13, 2007 at 10:19:57AM -0500, Jonathan S. Shapiro wrote:
> > I am inclined to keep the activation mechanism, but detach it entirely
> > from the message payload delivery. I am inclined to deliver a
> > soft-interrupt on message delivery.
> I'm not entirely sure what you mean my "soft-interrupt".  But doesn't
> this entail two context switches on message delivery?  The first to
> enter the activation handler and the second to actually receive the
> message.

Not necessarily. I think the right answer to this is "wait for spec 0.4
and let's talk about it". That should be out in a couple of days.

> As an aside, I'm also interested in the reason for registering message
> delivery in a micro-kernel.  It appears to offer two advantages;
>  1) Performance, if you're working with registers it's probably going to
>  be faster.  You don't need to worry about setting up some shared area
>  to put the message in, also things are more immediately available to
>  the receiver.
>  2) Abstraction, the kernel has more flexibility with respect to how
>  it operates internally.  Once you dictate that things must appear in
>  specific formats in user land then you're imposing tighter constraints
>  on the kernel.  This obviously impacts indirectly (and probably
>  importantly) on performance.

Main issue is efficiency, and it's a factor of two to four depending on
processor architecture. The overwhelming majority of messages only move
2-4 words. If you can keep those in registers in the receiver you can
avoid building a cross-space mapping window in the IPC path. Building
that is expensive, so avoiding it is a huge win.

Jonathan S. Shapiro, Ph.D.
Managing Director
The EROS Group, LLC
+1 443 927 1719 x5100

More information about the coyotos-dev mailing list