[coyotos-dev] IPC Redesign
Jonathan S. Shapiro
shap at eros-os.com
Fri Jun 22 13:54:31 EDT 2007
On Fri, 2007-06-22 at 10:00 -0700, Charles Landau wrote:
> At 3:03 PM -0400 5/22/07, Jonathan S. Shapiro wrote:
> > opcode 32-bits
> > fd 32-bits
> > offset 64-bits
> > length 32-bits
> >
> >This exceeds 4 words. The underlying problem is that in the absence of
> >the length parameter you don't know what was sent (as opposed to
> >received) if the read returns a short result.
>
> The length requested could be "spilled", that is, sent in the data
> string, which is otherwise unused.
>
> I'll save Shap the trouble of responding that this increases the cost
> of the call. But it's a very small cost.
Yes, it can be spilled. Yes it increases the cost. No, it definitely is
NOT a very small cost. On Pentium Pro, the cost jumps from 2.48us to
3.68us when you put a single byte into the indirect string.
This does not seem very big, but note that the trend in microprocessors
is for this cost to get worse, not better, over time.
There is also a problem that the fault semantics of receive string is
not the same as the fault semantics of receive registers.
There are better approaches to solving this. The implementation will
show up in Coyotos shortly, so I'll point it out when it is there to
see.
More information about the coyotos-dev
mailing list