On 10/27/2010 03:00 PM, Ian Molton wrote:
On 19/10/10 11:39, Avi Kivity wrote:
On 10/19/2010 12:31 PM, Ian Molton wrote:
2. should start with a patch to the virtio-pci spec to document what
you're doing
Where can I find that spec?
http://ozlabs.org/~rusty/virtio-spec/
Ok, but I'm not patching that until theres been some review.
Well, I like to review an implementation against a spec.
There are links to the associated qemu and guest OS changes in my
original email.
It doesnt, at present... It could be changed fairly easily ithout
breaking anything if that happens though.
The hypervisor and the guest can be changed independently. The driver
should be coded so that it doesn't depend on hypervisor implementation
details.
Fixed - updated patch tested and attached.
+
+ /* Transfer data */
+ if (virtqueue_add_buf(vq, sg_list, o_page, i_page, gldata)>= 0) {
+ virtqueue_kick(vq);
+ /* Chill out until it's done with the buffer. */
+ wait_for_completion(&gldata->done);
+ }
+
Better, but still unsatisfying. If the server is busy, the caller would
block. I guess it's expected since it's called from ->fsync(). I'm not
sure whether that's the best interface, perhaps aio_writev is better.
--
error compiling committee.c: too many arguments to function