On Tue, 2009-06-09 at 07:28 -0400, Terry Dontje wrote: > The biggest issue is coming up with a > way to have blocks on the SM btl converted to the system poll call > without requiring a socket write for every packet.
For what it's worth you don't need a socket write every (local) packet, all you need to send your local peers a message when you are about to sleep. This can be implemented with a shared memory word so no implicit comms is required. The sender can then send a message using whatever means it does currently, check if the bit is set send a "wakeup" message via a socket if the remote process is sleeping. You need to be careful to get the ordering right or you end up with deadlocks and you need to establish a "remote wakeup" mechanism although this is easily done with sockets. You don't even need to communicate over the socket, all it's for is to cause your peer to return from poll/select so it can query the shared memory state. Signals would also likely work however they tend to present other problems in my experience. Ashley, -- Ashley Pittman, Bath, UK. Padb - A parallel job inspection tool for cluster computing http://padb.pittman.org.uk