[okl4-developer] IPC transfer message question.
Suresh Iyer
suresh at soe.ucsc.edu
Sat Apr 25 15:01:24 EST 2009
Thanks Gernot !
That did make it clear.
suresh
On Fri, Apr 17, 2009 at 1:40 AM, Gernot Heiser <gernot at nicta.com.au> wrote:
> Hi Suresh,
>
> If you think about it, you'll realise that it doesn't matter from the
> PoV of semantics. The reason is that an IPC only happens if both the
> sender and receiver are ready (by definition of synchronous IPC).
>
> The implementation scheme used in L4-embedded (and, to my knowledge,
> all previous L4 versions -- I should actually check what OKL4 does ;-)
> is to simplify implementation: the message is always transferred while
> the kernel is in the sender's context. In the case where the receiver
> is waiting for the IPC, this means that the data is never touched, it
> is simply left in the registers while a context switch is performed to
> the receiver. (Ok, memory-backed message registers are touched, but
> that's unavoidable.)
>
> In the case where the sender is blocked when the receiver initiates the
> IPC, you don't lose anything, as you'd still have to restore the
> register message from the sender's TCB, and that's easier to do in the
> sender's context.
>
> And for virtual registers that aren't mapped to physical registers it
> doesn't matter.
>
> Gernot
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.okl4.org/pipermail/developer/attachments/20090424/ff09af67/attachment.htm
More information about the Developer
mailing list