From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44757) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XgWRT-0004tj-E3 for qemu-devel@nongnu.org; Tue, 21 Oct 2014 06:13:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XgWRM-0001it-Te for qemu-devel@nongnu.org; Tue, 21 Oct 2014 06:13:27 -0400 Date: Tue, 21 Oct 2014 13:16:50 +0300 From: "Michael S. Tsirkin" Message-ID: <20141021101650.GA22793@redhat.com> References: <1413788223-16235-1-git-send-email-mst@redhat.com> <54453398.2060102@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <54453398.2060102@suse.de> Subject: Re: [Qemu-devel] [PATCH v3] virtio-pci: fix migration for pci bus master List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alexander Graf Cc: qemu-ppc@nongnu.org, qemu-devel@nongnu.org, Anthony Liguori On Mon, Oct 20, 2014 at 06:08:56PM +0200, Alexander Graf wrote: > > > On 20.10.14 08:58, Michael S. Tsirkin wrote: > > Current support for bus master (clearing OK bit) together with the need to > > support guests which do not enable PCI bus mastering, leads to extra state in > > VIRTIO_PCI_FLAG_BUS_MASTER_BUG bit, which isn't robust in case of cross-version > > migration for the case when guests use the device before setting DRIVER_OK. > > > > Rip out this code, and replace it: > > - Modern QEMU doesn't need VIRTIO_PCI_FLAG_BUS_MASTER_BUG > > so just drop it for latest machine type. > > - For compat machine types, set PCI_COMMAND if DRIVER_OK > > is set. > > > > As this is needed for 2.1 for both pc and ppc, move PC_COMPAT macros from pc.h > > to a new common header. > > > > Reviewed-by: Greg Kurz > > Tested-by: Greg Kurz > > Signed-off-by: Michael S. Tsirkin > > --- > > > > Alexander, could you pls ack me merging this? > > Thanks! > > Have you tried whether this works with old kernel versions? We > introduced the broken flag for very specific old kernel versions that > got their flags wrong IIRC. > > > Alex Yes. The point is that since 2.1 the broken flag isn't effective anymore: when bus master is off, PCI blocks outgoing transactions and setting internal flags isn't going to help. Instead, we detect a buggy guest and immediately enable bus master for it - no need for a separate flag. -- MST