Re: [RFC PATCH]vhost-blk: In-kernel accelerator for virtio block device

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Badari,

On 12/08/11 06:50, Badari Pulavarty wrote:
On 8/10/2011 8:19 PM, Liu Yuan wrote:
When opening second device, we get panic since used_info_cachep is
already created. Just to make progress I moved this call to
vhost_blk_init().

I don't see any host panics now. With single block device (dd),
it seems to work fine. But when I start testing multiple block
devices I quickly run into hangs in the guest. I see following
messages in the guest from virtio_ring.c:

virtio_blk virtio2: requests: id 0 is not a head !
virtio_blk virtio1: requests: id 0 is not a head !
virtio_blk virtio4: requests: id 1 is not a head !
virtio_blk virtio3: requests: id 39 is not a head !

Thanks,
Badari



vq->data[] is initialized by guest virtio-blk driver and vhost_blk is
unware of it. it looks like used ID passed
over by vhost_blk to guest virtio_blk is wrong, but, it should not
happen. :|

And I can't reproduce this on my laptop. :(

Finally, found the issue :)

Culprit is:

+static struct io_event events[MAX_EVENTS];

With multiple devices, multiple threads could be executing
handle_completion() (one for
each fd) at the same time. "events" array is global :( Need to make it
one per device/fd.

For test, I changed MAX_EVENTS to 32 and moved "events" array to be
local (stack)
to handle_completion(). Tests are running fine.

Your laptop must have single processor, hence you have only one thread
executing handle_completion()
at any time..

Can you please post your code, or send me via email?
I'm also trying to get it running on a multi-processor system.

Thanks in advance,


Thanks,
Badari


--
Dongsu Park
Email: dongsu.park@xxxxxxxxxxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux