qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 2/2] virtio-pci: Disable modern interface if bac


From: Maxime Coquelin
Subject: Re: [Qemu-devel] [PATCH 2/2] virtio-pci: Disable modern interface if backend without VIRTIO_F_VERSION_1
Date: Fri, 9 Sep 2016 14:01:31 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0



On 09/09/2016 01:49 PM, Cornelia Huck wrote:
On Fri, 9 Sep 2016 13:44:35 +0200
Maxime Coquelin <address@hidden> wrote:

On 09/09/2016 01:20 PM, Cornelia Huck wrote:
On Fri, 9 Sep 2016 14:04:55 +0300
Marcel Apfelbaum <address@hidden> wrote:

On 09/09/2016 01:40 PM, Cornelia Huck wrote:
On Fri,  9 Sep 2016 12:14:32 +0200
Maxime Coquelin <address@hidden> wrote:

This patch makes pci devices plugging more robust, by not confusing
guest with modern interface when the backend doesn't support
VIRTIO_F_VERSION_1.

Cc: Marcel Apfelbaum <address@hidden>
Cc: Michael S. Tsirkin <address@hidden>
Cc: address@hidden
Signed-off-by: Maxime Coquelin <address@hidden>
---
 hw/virtio/virtio-pci.c | 15 +++++++++++++++
 hw/virtio/virtio-pci.h |  5 +++++
 2 files changed, 20 insertions(+)

Note that 11380b361 ("virtio: handle non-virtio-1-capable backend for
ccw") fixes this issue for ccw via the introduction of a
->post_plugged() callback. Unfortunately, we did not find a good way to
make it work for pci back then.

It seems that for ccw is enough to rewind dev->rev_max,
sadly for pci we need to rewind a lot of settings/resources.

Yes, that what I meant with 'more flexibility for ccw'.
Maybe we could replace post_plugged with a pre_plugged approach?

In ->pre_plugged(), cww and pci would specify which features it can
support using virtio_add_feature().
Then we could call get_features() before ->device_plugged().

I think that would work for ccw (haven't looked at pci).
Good, once quick fix accepted, I'll try this solution.



Doing this, both ccw and pci would have the needed information without
having to rewind any settings.

Does that make sense?

But for now, I think it would be better to merge something in the spirit
of this series (taking into account to remarks).
Indeed, I think we want this fixed in stable, but the above proposal
would be too huge for stable.

A 'just check for VERSION_1' approach would probably be best for stable.

Ok, thanks.
I will send a v2 replacing the generic function with a VERISON_1
specfic:
bool virtio_test_backend_virtio_1(VirtIODevice *vdev, Error **errp);

Maxime




reply via email to

[Prev in Thread] Current Thread [Next in Thread]