Re: [RFC 1/4] New virtio bus driver
From: Rusty Russell <hidden>
Date: 2007-07-10 01:53:39
On Mon, 2007-07-09 at 15:09 +0300, Avi Kivity wrote:
Arnd Bergmann wrote:quoted
Why do you think we want to have multiple outstanding read messages? I would guess that a single message is enough, you can always requeue it after one event gets processed.Suppose there is one message queued. The host reconfigures and sends the message. A new reconfiguration event now cannot be propagated. If there are two messages queued, the host can post the updates in the second message. The guest would then post two new messages (since it can't tell whether any reconfiguration events occured after the second message), the host would fill one, and everyone is happy.
But there can always be another reconfig about to happen after whatever the guest is processing now. Is there any point in the guest doing anything other than one at a time, in order?
Rusty, If you agree with this, I think it needs to be added to the core protocol.
Well, using an "events" virtqueue in the core means existing virtual I/O mechanisms need to fake one up on the guest. Using a function-call interface is more natural (and doesn't stop a virtio layer from using an events virtqueue and demuxing). Also, are we sure about the assumption that events won't have ordering constraints wrt other queues? For example, a media change event might; I don't know the semantics required there... Rusty.