From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40837) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1biKEd-00070z-2e for qemu-devel@nongnu.org; Fri, 09 Sep 2016 07:44:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1biKEY-0003OX-Tw for qemu-devel@nongnu.org; Fri, 09 Sep 2016 07:44:42 -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> From: Maxime Coquelin Message-ID: <3368b8a8-b996-d38d-fd82-44e17b9402cf@redhat.com> Date: Fri, 9 Sep 2016 13:44:35 +0200 MIME-Version: 1.0 In-Reply-To: <20160909132056.736715d2.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 , Marcel Apfelbaum Cc: mst@redhat.com, qemu-devel@nongnu.org, vkaplans@redhat.com, qemu-stable@nongnu.org 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(). 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. Thanks, Maxime