All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marcel Apfelbaum <marcel@redhat.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: James Hogan <james.hogan@imgtec.com>,
	qemu-devel@nongnu.org, Jason Wang <jasowang@redhat.com>,
	virtualization@lists.linux-foundation.org
Subject: Re: [Qemu-devel] [BUG] virtio-net linux driver fails to probe on MIPS Malta since 'hw/virtio-pci: fix virtio behaviour'
Date: Tue, 21 Mar 2017 16:16:58 +0200	[thread overview]
Message-ID: <c92a77f3-7ddc-c0b8-7046-6d8f1c56aec7@redhat.com> (raw)
In-Reply-To: <20170320174101-mutt-send-email-mst@kernel.org>

On 03/20/2017 05:43 PM, Michael S. Tsirkin wrote:
> On Mon, Mar 20, 2017 at 05:21:22PM +0200, Marcel Apfelbaum wrote:
>> On 03/17/2017 11:57 PM, James Hogan wrote:
>>> Hi,
>>>
>>> I've bisected the following failure of the virtio_net linux v4.10 driver
>>> to probe in QEMU v2.9.0-rc1 emulating a MIPS Malta machine:
>>>
>>> virtio_net virtio0: virtio: device uses modern interface but does not have VIRTIO_F_VERSION_1
>>> virtio_net: probe of virtio0 failed with error -22
>>>
>>> To QEMU commit 9a4c0e220d8a ("hw/virtio-pci: fix virtio behaviour").
>>>
>>> It appears that adding ",disable-modern=on,disable-legacy=off" to the
>>> virtio-net -device makes it work again.
>>>
>>> I presume this should really just work out of the box. Any ideas why it
>>> isn't?
>>>
>>
>> Hi,
>>
>>
>> This is strange. This commit changes virtio devices from legacy to virtio "transitional".
>> (your command line changes it to legacy)
>> Linux 4.10 supports virtio modern/transitional (as far as I know) and on QEMU side
>> there is nothing new.
>>
>> Michael, do you have any idea?
>>
>> Thanks,
>> Marcel
>
> My guess would be firmware mishandling 64 bit BARs - we saw such
> a case on sparc previously. As a result you are probably reading
> all zeroes from features register or something like that.
> Marcel, could you send a patch making the bar 32 bit?
> If that helps we know what the issue is.
>

Hi James,

Can you please check if the below patch fixes the problem?
Please note it is not a solution.

diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index f9b7244..5b4d429 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -1671,9 +1671,7 @@ static void virtio_pci_device_plugged(DeviceState *d, Error **errp)
          }

          pci_register_bar(&proxy->pci_dev, proxy->modern_mem_bar_idx,
-                         PCI_BASE_ADDRESS_SPACE_MEMORY |
-                         PCI_BASE_ADDRESS_MEM_PREFETCH |
-                         PCI_BASE_ADDRESS_MEM_TYPE_64,
+                         PCI_BASE_ADDRESS_SPACE_MEMORY,
                           &proxy->modern_bar);

          proxy->config_cap = virtio_pci_add_mem_cap(proxy, &cfg.cap);


Thanks,
Marcel

WARNING: multiple messages have this Message-ID (diff)
From: Marcel Apfelbaum <marcel@redhat.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: James Hogan <james.hogan@imgtec.com>,
	qemu-devel@nongnu.org, virtualization@lists.linux-foundation.org
Subject: Re: [BUG] virtio-net linux driver fails to probe on MIPS Malta since 'hw/virtio-pci: fix virtio behaviour'
Date: Tue, 21 Mar 2017 16:16:58 +0200	[thread overview]
Message-ID: <c92a77f3-7ddc-c0b8-7046-6d8f1c56aec7@redhat.com> (raw)
In-Reply-To: <20170320174101-mutt-send-email-mst@kernel.org>

On 03/20/2017 05:43 PM, Michael S. Tsirkin wrote:
> On Mon, Mar 20, 2017 at 05:21:22PM +0200, Marcel Apfelbaum wrote:
>> On 03/17/2017 11:57 PM, James Hogan wrote:
>>> Hi,
>>>
>>> I've bisected the following failure of the virtio_net linux v4.10 driver
>>> to probe in QEMU v2.9.0-rc1 emulating a MIPS Malta machine:
>>>
>>> virtio_net virtio0: virtio: device uses modern interface but does not have VIRTIO_F_VERSION_1
>>> virtio_net: probe of virtio0 failed with error -22
>>>
>>> To QEMU commit 9a4c0e220d8a ("hw/virtio-pci: fix virtio behaviour").
>>>
>>> It appears that adding ",disable-modern=on,disable-legacy=off" to the
>>> virtio-net -device makes it work again.
>>>
>>> I presume this should really just work out of the box. Any ideas why it
>>> isn't?
>>>
>>
>> Hi,
>>
>>
>> This is strange. This commit changes virtio devices from legacy to virtio "transitional".
>> (your command line changes it to legacy)
>> Linux 4.10 supports virtio modern/transitional (as far as I know) and on QEMU side
>> there is nothing new.
>>
>> Michael, do you have any idea?
>>
>> Thanks,
>> Marcel
>
> My guess would be firmware mishandling 64 bit BARs - we saw such
> a case on sparc previously. As a result you are probably reading
> all zeroes from features register or something like that.
> Marcel, could you send a patch making the bar 32 bit?
> If that helps we know what the issue is.
>

Hi James,

Can you please check if the below patch fixes the problem?
Please note it is not a solution.

diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index f9b7244..5b4d429 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -1671,9 +1671,7 @@ static void virtio_pci_device_plugged(DeviceState *d, Error **errp)
          }

          pci_register_bar(&proxy->pci_dev, proxy->modern_mem_bar_idx,
-                         PCI_BASE_ADDRESS_SPACE_MEMORY |
-                         PCI_BASE_ADDRESS_MEM_PREFETCH |
-                         PCI_BASE_ADDRESS_MEM_TYPE_64,
+                         PCI_BASE_ADDRESS_SPACE_MEMORY,
                           &proxy->modern_bar);

          proxy->config_cap = virtio_pci_add_mem_cap(proxy, &cfg.cap);


Thanks,
Marcel

  parent reply	other threads:[~2017-03-21 14:17 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-17 21:57 [Qemu-devel] [BUG] virtio-net linux driver fails to probe on MIPS Malta since 'hw/virtio-pci: fix virtio behaviour' James Hogan
2017-03-17 21:57 ` James Hogan
2017-03-20 15:21 ` [Qemu-devel] " Marcel Apfelbaum
2017-03-20 15:21   ` Marcel Apfelbaum
2017-03-20 15:43   ` [Qemu-devel] " Michael S. Tsirkin
2017-03-20 15:43     ` Michael S. Tsirkin
2017-03-20 16:02     ` [Qemu-devel] " Marcel Apfelbaum
2017-03-20 16:02       ` Marcel Apfelbaum
2017-03-21 14:16     ` Marcel Apfelbaum [this message]
2017-03-21 14:16       ` Marcel Apfelbaum
2017-03-27 18:45       ` [Qemu-devel] " James Hogan
2017-03-27 18:45         ` James Hogan

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=c92a77f3-7ddc-c0b8-7046-6d8f1c56aec7@redhat.com \
    --to=marcel@redhat.com \
    --cc=james.hogan@imgtec.com \
    --cc=jasowang@redhat.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=virtualization@lists.linux-foundation.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 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.