Hello Kalle, Thanks for the patch. It makes sense to me, and I have committed it to the repository. Apparently the local ID logic doesn't handle the propagation case very well.
> As requiring that the VirtualSender TCR always contain a global TID > when propagation is specified in the message tag, I'd like to recommend > that the > L4.X2 spec be revised accordingly. Hmm. I actually wouldn't want change the spec. The implementation follows the spec, not vice versa. And just because the implementation doesn't handle every (corner) case or contains bugs, I don't see any conceptual reason why local IDs shouldn't be used when propagating messages. > If it matters for a short patch like this, the attached changeset is > licensed under the two-clause BSD license as given at the start of the > source file it modifies. Yes, that actually matters. BSD license is fine, though. Thanks. > [2] IMO, silently disabling propagation is the wrong thing to do as it > tells > the sender that the IPC operation succeeded as specified when it > did > not. This behaviour also diverges from that of Pistachio 0.4 . That's debatable. The spec says: "If originator thread and current sender, or current sender and receiver reside in the same address space, propagation is always permitted. Otherwise, IPC occurs unpropagated.". The implementation actually implements that behavior, and it seems to be an unwanted side-effect that local IDs don't work there and that the implementation then continues with the IPC, but unpropagated. An ASSERT catching local IDs might be more appropriate in this case. Best, -Jan -- Jan Stoess System Architecture Group University of Karlsruhe Phone: +49 (721) 608-4056 Fax: +49 (721) 608-7664 eMail: sto...@ira.uka.de