IPC transfer message question.
voelp at os.inf.tu-dresden.de
Thu Apr 16 13:09:37 CEST 2009
Suresh Iyer wrote:
> I am working on some modifying IPC behaviour for an alternative
> scheduling mechanism based on temporal partioning.
Sounds cool, can you tell us a little bit more about this work. Also did
you have a look at the Pikeos scheduling stuff from Sysgo. They have
implemented strong temporal partitions although I don't know whether
they allow cross partition IPC calls.
> I had a question related to L4 embedded IPC transfer message part ( I
> dont know whether this could be an L4 generic question ).
> In the IPC implementation for l4 embedded , i see that the data is
> transferred only( ie transfer_messsge called ) only during a send
> phase of the code. Does this have to be the case ?
> In other words, lets assume A is sending to B and B is not ready to
> receive.. If we switch to B , and
> the code reaches Bs receive phase, cant B transfer the data from As
> utcb to Bs utcb by calling transfer_message of L4ka ? or do we have to
> switch back to A to make the transfer message happen ?
> The L4 embedded code seems to be doing this . Any reasons for this ?
Most L4 implementations (not only L4 embedded) chose the sender to be
the active part but besides code duplication when copying both in the
send phase and in the receive phase (depending on which is invoked last)
there is no real technical reason why the receiver should not pull the
message instead. If the sender comes last it would also be possible to
first switch to the receiver and have it pull in his message.
> would really appreciate a prompt answer, Thanks so much !!
To cite Merry and Pippin in LOTR: "Don't be hasty!"
More information about the l4-hackers