From mboxrd@z Thu Jan 1 00:00:00 1970 From: Liu Yuan Subject: Re: [RFC PATCH]vhost-blk: In-kernel accelerator for virtio block device Date: Thu, 11 Aug 2011 11:01:05 +0800 Message-ID: <4E4345F1.90107@gmail.com> References: <1311863346-4338-1-git-send-email-namei.unix@gmail.com> <4E325F98.5090308@gmail.com> <4E32F7F2.4080607@us.ibm.com> <4E363DB9.70801@gmail.com> <1312495132.9603.4.camel@badari-desktop> <4E3BCE4D.7090809@gmail.com> <4E3C302A.3040500@us.ibm.com> <4E3F3D4E.70104@gmail.com> <4E3F6E72.1000907@us.ibm.com> <4E3F90E3.9080600@gmail.com> <4E4019E1.2090508@us.ibm.com> <4E41EAC5.8060001@gmail.com> <1313008667.9603.14.camel@badari-desktop> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit To: Badari Pulavarty , kvm@vger.kernel.org Return-path: Received: from mail-pz0-f42.google.com ([209.85.210.42]:55158 "EHLO mail-pz0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751075Ab1HKDBM (ORCPT ); Wed, 10 Aug 2011 23:01:12 -0400 Received: by pzk37 with SMTP id 37so2905462pzk.1 for ; Wed, 10 Aug 2011 20:01:12 -0700 (PDT) In-Reply-To: <1313008667.9603.14.camel@badari-desktop> Sender: kvm-owner@vger.kernel.org List-ID: > It looks like the patch wouldn't work for testing multiple devices. > > vhost_blk_open() does > + used_info_cachep = KMEM_CACHE(used_info, SLAB_HWCACHE_ALIGN | > SLAB_PANIC); > This is weird. how do you open multiple device?I just opened the device with following command: -drive file=/dev/sda6,if=virtio,cache=none,aio=native -drive file=~/data0.img,if=virtio,cache=none,aio=native -drive file=~/data1.img,if=virtio,cache=none,aio=native And I didn't meet any problem. this would tell qemu to open three devices, and pass three FDs to three instances of vhost_blk module. So KMEM_CACHE() is okay in vhost_blk_open(). > 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. :( > -- > To unsubscribe from this list: send the line "unsubscribe kvm" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html