qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Alexander Graf <agraf@suse.de>
To: Mark McLoughlin <markmc@redhat.com>
Cc: rusty@rustcorp.com.au, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] virtio breakage with 2.6.25 guest kernel
Date: Tue, 13 Jan 2009 14:59:28 +0100	[thread overview]
Message-ID: <496C9E40.3010505@suse.de> (raw)
In-Reply-To: <1231854508.4290.186.camel@localhost.localdomain>

Mark McLoughlin wrote:
> Hi Alex,
>
> (Dropping kvm-devel@sf.net - it's kvm@vger.kernel.org now anyway)
>   

Thunderbird keeps selecting that one and I'm sometimes too confused to
see it's actually the wrong one.

> On Tue, 2009-01-13 at 14:33 +0100, Alexander Graf wrote:
>
>   
>> while I don't fully understand the problem, here's what I experience so far:
>>
>> When using an openSUSE 11.0 kernel (2.6.25) in the guest, virtio on tap
>> breaks with current KVM git, while it used to work before (haven't
>> bisected, definitely worked in kvm-78, but is probably due to Anthony's
>> rewrite). It shows the following message (comes from qemu):
>>
>> virtio-net header not in first element
>>
>> This is because qemu expects a message with mergeable rx bufs (12
>> bytes), but if I see things correctly the old kernel doesn't support
>> that feature (sends 10 bytes). I put in some debug messages on IO
>> reads/writes in the qemu virtio handler and got these:
>>
>> virtio IO read: 0 = 0x100bba3
>> virtio IO write: 0x4 = 0x100bba3
>> virtio: setting features 0x100bba3
>>
>> So I believe the feature masking is somewhat non-functional? Or did I
>> read the masking code in qemu's virtio-net wrong?
>>
>> Basically for me, current KVM git broke old guest support, which is a
>> clear regression and should not happen. Does anybody with more expertise
>> in virtio want to take on this?
>>     
>
> Yeah, I noticed this one last week.
>
> The issue here is that 2.6.25 virtio erroneously says it supports all
> features supported by the host - i.e. it's a guest kernel bug.
>
> With recent qemu, that causes us to enable mergeable receive buffers and
> the guest barfs. See:
>
>         mask = ioread32(vp_dev->ioaddr + VIRTIO_PCI_HOST_FEATURES);
>         if (mask & (1 << bit)) {
>                 mask |= (1 << bit);
>                 iowrite32(mask, vp_dev->ioaddr + VIRTIO_PCI_GUEST_FEATURES);
>
> This got fixed in 2.6.26 by:
>
>   http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c45a6816
>
> I did consider forwarding this to stable@vger.kernel.org, but apparently
> the 2.6.25.x series is finished now anyway.
>   

Ok, that's good to know. I don't think anyone officially supported
virtio in 2.6.25 days, but I'll check internally if we need to backport
anything.

Thanks a lot

Alex

  reply	other threads:[~2009-01-13 13:59 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-13 13:33 [Qemu-devel] virtio breakage with 2.6.25 guest kernel Alexander Graf
2009-01-13 13:48 ` Mark McLoughlin
2009-01-13 13:59   ` Alexander Graf [this message]
2009-01-13 14:00 ` Avi Kivity
2009-01-13 20:14 ` [Qemu-devel] " Anthony Liguori
2009-01-13 21:05   ` Alexander Graf
2009-01-14  9:22     ` Mark McLoughlin
2009-01-15  2:17       ` Rusty Russell

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=496C9E40.3010505@suse.de \
    --to=agraf@suse.de \
    --cc=markmc@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=rusty@rustcorp.com.au \
    /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).