ken@gvax.cs.cornell.edu (Ken Birman) (03/28/90)
For some time I have been planning to optimize V2.0 communication to use Mach IPC for local message passing when possible. This is because they outperform UDP in the local (intra-machine) case by about 3 to 1. (Via the net Mach IPC is a tie with UDP) If you have been following comp.os.mach, you will be aware that it turns out to be unexpectedly hard to combine Mach and UNIX IO mechanisms in a single program. Basically, I would need to get ISIS to talk to the "environment manager" (to pass receive rights on Mach ports) and also modify my basic data input mechanism to be multi-threaded (the Mach group claims that this is why Mach IPC is fast; my guess is that most of the advantage is from shared memory semantics on messaging). Counting the inevitable performance tuning, I figure this will take at least 2 weeks. (For those who followed this, I suggested that Mach simply add an AF_MACH communication channel and give us whatever speedup they can, My guess is that this would be 95% of what they get with their own msg_send() and msg_rcv interface if done cleverly. They expressed what I would characterize as profound (very profound) disinterest). I'll get to this eventually, but I am curious to learn how many people not only need ISIS on Mach (it already runs on Mach) but really need this performance improvement. Email to me if you just want to vote; feel free to post if you have been doing performance experiments with Mach messaging.