From: Jean-Philippe Brucker <jean-philippe.brucker@arm.com>
To: Gerd Hoffmann <kraxel@redhat.com>,
"seabios@seabios.org" <seabios@seabios.org>,
"kvm@vger.kernel.org" <kvm@vger.kernel.org>
Cc: James Morse <James.Morse@arm.com>
Subject: Re: [PATCH seabios 3/3] kvmtool: support larger virtio queues
Date: Fri, 3 Nov 2017 19:42:06 +0000 [thread overview]
Message-ID: <d82fb35e-f0cc-d124-afdf-1a03fe2de0fd@arm.com> (raw)
In-Reply-To: <1509723266.5662.5.camel@redhat.com>
On 03/11/17 15:34, Gerd Hoffmann wrote:
> On Fri, 2017-11-03 at 13:49 +0000, Jean-Philippe Brucker wrote:
>> On 02/11/17 15:50, Gerd Hoffmann wrote:
>>> Queues have 256 entries on kvmtool, support that. Needs more
>>> memory for
>>> virtqueues now. But with the move to 32bit drivers for virtio this
>>> should not be much of an issue any more.
>>>
>>> Known problems (probably kvmtool bugs):
>>> * Must bump to 260 entries to make things actually work,
>>> otherwise kvmtool segfaults. Oops.
>>
>> You mean setting MAX_QUEUE_NUM to 256 instead of 260 in seabios
>> causes a
>> kvmtool crash?
>
> yes.
>
>> Do you have any more detail on the segfault?
>
> Ok, lets have a look with gdb ...
>
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 0x7f81caf3c700 (LWP 20234)]
> virt_queue__get_head_iov (vq=vq@entry=0x7f82576be0a0, iov=iov@entry=0x7
> f826770aae0,
> out=out@entry=0x7f826770bae0, in=in@entry=0x7f826770bae2,
> head=65104, kvm=kvm@entry=0x246eee0)
> at virtio/core.c:105
> 105 *out = *in = 0;
> (gdb) bt
> #0 0x000000000040c91b in virt_queue__get_head_iov (vq=vq@entry=0x7f825
> 76be0a0, iov=iov@entry=0x7f826770aae0, out=out@entry=0x7f826770bae0, in
> =in@entry=0x7f826770bae2, head=65104, kvm=kvm@entry=0x246eee0) at
> virtio/core.c:105
> #1 0x000000000040bbf7 in virtio_blk_thread (bdev=0x7f82576be010,
> vq=0x7f82576be0a0, kvm=0x246eee0)
> at virtio/blk.c:134
> #2 0x000000000040bbf7 in virtio_blk_thread (dev=0x7f82576be010) at
> virtio/blk.c:208
> #3 0x00007f82571c6e25 in start_thread () at /lib64/libpthread.so.0
> #4 0x00007f82543b134d in clone () at /lib64/libc.so.6
> (gdb) print *vq
> $1 = {vring = {num = 256, desc = 0x7f824cf3e000, avail =
> 0x7f824cf3f000, used = 0x7f824cf40000},
> pfn = 524285, last_avail_idx = 263, last_used_signalled = 1, endian =
> 1}
>
> last_avail_idx looks bogus ...
It follows avail->idx, which wraps naturally at 65536 (regardless of the
ring size). But head=65104 seems bogus, it should be an index into the
descriptor table. So either seabios puts that value in the avail ring, or
kvmtool reads some uninitialized ring entry. I haven't found how we can
get into this situation yet.
Thanks,
Jean
next prev parent reply other threads:[~2017-11-03 19:40 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-02 15:50 [PATCH seabios 0/3] add kvmtool support Gerd Hoffmann
2017-11-02 15:50 ` [PATCH seabios 1/3] kvmtool: initial support Gerd Hoffmann
2017-11-02 15:50 ` [PATCH seabios 2/3] kvmtool: allow mmio for legacy bar 0 Gerd Hoffmann
2017-11-02 15:50 ` [PATCH seabios 3/3] kvmtool: support larger virtio queues Gerd Hoffmann
2017-11-03 13:49 ` Jean-Philippe Brucker
2017-11-03 15:34 ` Gerd Hoffmann
2017-11-03 19:42 ` Jean-Philippe Brucker [this message]
2017-11-06 14:54 ` Jean-Philippe Brucker
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=d82fb35e-f0cc-d124-afdf-1a03fe2de0fd@arm.com \
--to=jean-philippe.brucker@arm.com \
--cc=James.Morse@arm.com \
--cc=kraxel@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=seabios@seabios.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).