From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46292) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1biKV6-0005iE-Ql for qemu-devel@nongnu.org; Fri, 09 Sep 2016 08:01:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1biKV0-0001Y8-22 for qemu-devel@nongnu.org; Fri, 09 Sep 2016 08:01:43 -0400 References: <1473416072-7063-1-git-send-email-maxime.coquelin@redhat.com> <1473416072-7063-3-git-send-email-maxime.coquelin@redhat.com> <20160909124038.10fb8181.cornelia.huck@de.ibm.com> <20160909132056.736715d2.cornelia.huck@de.ibm.com> <3368b8a8-b996-d38d-fd82-44e17b9402cf@redhat.com> <20160909134913.2d9f1f04.cornelia.huck@de.ibm.com> From: Maxime Coquelin Message-ID: Date: Fri, 9 Sep 2016 14:01:31 +0200 MIME-Version: 1.0 In-Reply-To: <20160909134913.2d9f1f04.cornelia.huck@de.ibm.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 2/2] virtio-pci: Disable modern interface if backend without VIRTIO_F_VERSION_1 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Cornelia Huck Cc: Marcel Apfelbaum , mst@redhat.com, qemu-devel@nongnu.org, vkaplans@redhat.com, qemu-stable@nongnu.org On 09/09/2016 01:49 PM, Cornelia Huck wrote: > On Fri, 9 Sep 2016 13:44:35 +0200 > Maxime Coquelin wrote: > >> On 09/09/2016 01:20 PM, Cornelia Huck wrote: >>> On Fri, 9 Sep 2016 14:04:55 +0300 >>> Marcel Apfelbaum wrote: >>> >>>> On 09/09/2016 01:40 PM, Cornelia Huck wrote: >>>>> On Fri, 9 Sep 2016 12:14:32 +0200 >>>>> Maxime Coquelin 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 >>>>>> Cc: Michael S. Tsirkin >>>>>> Cc: qemu-stable@nongnu.org >>>>>> Signed-off-by: Maxime Coquelin >>>>>> --- >>>>>> 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