All of lore.kernel.org
 help / color / mirror / Atom feed
From: Badari Pulavarty <pbadari@us.ibm.com>
To: Liu Yuan <namei.unix@gmail.com>
Cc: kvm@vger.kernel.org
Subject: Re: [RFC PATCH]vhost-blk: In-kernel accelerator for virtio block device
Date: Thu, 11 Aug 2011 16:51:16 -0700	[thread overview]
Message-ID: <4E446AF4.8050102@us.ibm.com> (raw)
In-Reply-To: <4E434A51.8000902@gmail.com>

On 8/10/2011 8:19 PM, Liu Yuan wrote:
> On 08/11/2011 11:01 AM, Liu Yuan wrote:
>>
>>> 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().
>>
>
> Oh, you are right. KMEM_CACHE() is in the wrong place. it is three 
> instances vhost worker threads created. Hmmm, but I didn't meet any 
> problem when opening it and running it. So strange. I'll go to figure 
> it out.
>
>>> 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. :(

I spent lot time looking at the code on how we can pass the wrong ID and 
corrupt vq->data[]. I can't seem
to spot the bug :(

I hacked vhost_blk to return success immediately, without doing any IO - 
to see if its a generic problem.
With the hack (of not doing any IO), I can't reproduce the problem. So, 
its some thing in the IO completion
handling code causing this. I will keep looking..

Thanks,
Badari


Thanks,
Badari



  reply	other threads:[~2011-08-11 23:51 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-28 14:29 [RFC PATCH]vhost-blk: In-kernel accelerator for virtio block device Liu Yuan
2011-07-28 14:29 ` [RFC PATCH] vhost-blk: An in-kernel accelerator for virtio-blk Liu Yuan
2011-07-28 14:47   ` Christoph Hellwig
2011-07-29 11:19     ` Liu Yuan
2011-07-28 15:18   ` Stefan Hajnoczi
2011-07-28 15:22   ` Michael S. Tsirkin
2011-07-29 15:09     ` Liu Yuan
2011-08-01  6:25     ` Liu Yuan
2011-08-01  8:12       ` Michael S. Tsirkin
2011-08-01  8:55         ` Liu Yuan
2011-08-01 10:26           ` Michael S. Tsirkin
2011-08-11 19:59     ` Dongsu Park
2011-08-12  8:56       ` Alan Cox
2011-07-28 14:29 ` [RFC PATCH] vhost: Enable vhost-blk support Liu Yuan
2011-07-28 15:44 ` [RFC PATCH]vhost-blk: In-kernel accelerator for virtio block device Stefan Hajnoczi
2011-07-29  4:48   ` Stefan Hajnoczi
2011-07-29  7:59     ` Liu Yuan
2011-07-29 10:55       ` Christoph Hellwig
2011-07-29  7:22   ` Liu Yuan
2011-07-29  9:06     ` Stefan Hajnoczi
2011-07-29 12:01       ` Liu Yuan
2011-07-29 12:29         ` Stefan Hajnoczi
2011-07-29 12:50           ` Stefan Hajnoczi
2011-07-29 14:45             ` Liu Yuan
2011-07-29 14:50               ` Liu Yuan
2011-07-29 15:25         ` Sasha Levin
2011-08-01  8:17           ` Avi Kivity
2011-08-01  9:18             ` Liu Yuan
2011-08-01  9:37               ` Avi Kivity
2011-07-29 18:12     ` Badari Pulavarty
2011-08-01  5:46       ` Liu Yuan
2011-08-01  8:12         ` Christoph Hellwig
2011-08-04 21:58         ` Badari Pulavarty
2011-08-05  7:56           ` Liu Yuan
2011-08-05 11:04           ` Liu Yuan
2011-08-05 18:02             ` Badari Pulavarty
2011-08-08  1:35               ` Liu Yuan
2011-08-08  5:04                 ` Badari Pulavarty
2011-08-08  7:31                   ` Liu Yuan
2011-08-08 17:16                     ` Badari Pulavarty
2011-08-10  2:19                       ` Liu Yuan
2011-08-10 20:37                         ` Badari Pulavarty
2011-08-11  3:01                           ` Liu Yuan
2011-08-11  3:19                             ` Liu Yuan
2011-08-11 23:51                               ` Badari Pulavarty [this message]
2011-08-12  4:50                               ` Badari Pulavarty
2011-08-12  6:46                                 ` Dongsu Park
2011-08-12  8:27                                 ` Liu Yuan
2011-08-12 11:40                                   ` Liu Yuan
2011-08-12 16:12                                     ` Badari Pulavarty
2011-08-15  3:20                                       ` Liu Yuan
2011-08-15  4:17                                         ` Badari Pulavarty
2011-08-16  5:44                                           ` Liu Yuan
2011-09-07 13:36                                           ` Liu Yuan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4E446AF4.8050102@us.ibm.com \
    --to=pbadari@us.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=namei.unix@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.