On 19-11-24, 10:44, Bill Mills wrote:
Yes, after I coded my own I don't know that there is a ton of reason to centralize the async waiting code. The way things work now I serialize each request per device. Multiple responses could be pending for different devices but not for the same device.
Hmm, I knew this but realized after reading your email that I was using a single completion per ffa_device (i.e. transport), which really should be per-virtio-device.
So, I need a completion instance in virtio-msg-dev and virtio-msg-ffa-dev (for bus messages). And now that I have it, I have created struct virtio_msg_async to keep the completion and the core has some common code afterall.
With the way Linux is structured I don't see anyway to improve this and probibly there is no reason to do so.
In a greenfield implementation you could imaging sending N GET VQ messages and then N SET VQ messages. This would cut down on the number of turn around times needed to setup a device. However, I suspect no one really cares about that.
Right.