On Mon, 20 Oct 2014 18:08:56 +0200 Alexander Graf <ag...@suse.de> 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 <gk...@linux.vnet.ibm.com> > > Tested-by: Greg Kurz <gk...@linux.vnet.ibm.com> > > Signed-off-by: Michael S. Tsirkin <m...@redhat.com> > > --- > > > > 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. > This is a follow-up to the following commit: commit e43c0b2ea5574efb0bedebf6a7d05916eefeba52 Author: Michael S. Tsirkin <m...@redhat.com> Date: Thu Sep 11 18:45:33 2014 +0200 virtio-pci: enable bus master for old guests The goal was to support *again* buggy guests that do DMA without enabling bus master, since QEMU now uses the bus master address space for delivering MSI/MSI-x messages. We were missing some bits to support cross version migration. Thanks to Michael's patch, I could migrate a buggy RHEL 6.5 guest from QEMU v2.1 to QEMU master. > > Alex > Cheers. -- Greg