Messages in this thread | | | Date | Thu, 16 Apr 2015 12:31:51 +0200 | From | Daniel Mack <> | Subject | Re: [GIT PULL] kdbus for 4.1-rc1 |
| |
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
| |