On 04/16/2015 12:11 AM, Andy Lutomirski wrote: > Also, getting the really high performance stuff right would be nice. > Binder has one thing going for it (IIRC -- I've talked about it to > some of the authors, but I've never so much as glanced at the code): > it has a primitive to send and wait for a reply. This reduces the > load on scheduler.
kdbus has the same thing, we call it a synchronous reply. That concept is actually comprehensively explained in kdbus.message(7): By default, all calls to kdbus are considered asynchronous, non-blocking. However, as there are many use cases that need to wait for a remote peer to answer a method call, there's a way to send a message and wait for a reply in a synchronous fashion. This is what the KDBUS_SEND_SYNC_REPLY controls. The KDBUS_CMD_SEND ioctl will block until the reply has arrived, the timeout limit is reached, in case the remote connection was shut down, or if interrupted by a signal before any reply; see signal(7). The offset of the reply message in the sender's pool is stored in in offset_reply when the ioctl has returned without error. Hence, there is no need for another KDBUS_CMD_RECV ioctl or anything else to receive the reply. Thanks, Daniel -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/