[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PULL 8/9] virtio-gpu: split virtio-gpu-pci & virtio-vg
From: |
Marc-André Lureau |
Subject: |
Re: [Qemu-devel] [PULL 8/9] virtio-gpu: split virtio-gpu-pci & virtio-vga |
Date: |
Tue, 25 Jun 2019 22:56:05 +0200 |
Hi
On Mon, Jun 24, 2019 at 5:53 PM Laurent Vivier <address@hidden> wrote:
>
> On 29/05/2019 06:40, Gerd Hoffmann wrote:
> > From: Marc-André Lureau <address@hidden>
> >
> > Add base classes that are common to vhost-user-gpu-pci and
> > vhost-user-vga.
> >
> > Signed-off-by: Marc-André Lureau <address@hidden>
> > Message-id: address@hidden
> > Signed-off-by: Gerd Hoffmann <address@hidden>
> > ---
> > hw/display/virtio-vga.h | 32 +++++++++
> > hw/display/virtio-gpu-pci.c | 52 +++++++++-----
> > hw/display/virtio-vga.c | 135 ++++++++++++++++++------------------
> > MAINTAINERS | 2 +-
> > 4 files changed, 137 insertions(+), 84 deletions(-)
> > create mode 100644 hw/display/virtio-vga.h
> >
>
> This patch breaks something in the migration (no need of an OS, tested during
> SLOF sequence).
>
> Tested between v4.0.0 and master.
>
> v4.0.0: ppc64-softmmu/qemu-system-ppc64 -machine pseries-4.0 \
> -device virtio-gpu-pci \
> -serial mon:stdio -incoming tcp:0:4444
>
> master: ppc64-softmmu/qemu-system-ppc64 -machine pseries-4.0 \
> -device virtio-gpu-pci \
> -serial mon:stdio
>
>
> master: (qemu) migrate tcp:localhost:4444
>
> v4.0.0:
>
> qemu-system-ppc64: get_pci_config_device: Bad config data: i=0x34 read: 98
> device: 84 cmask: ff wmask: 0 w1cmask:0
> qemu-system-ppc64: Failed to load PCIDevice:config
> qemu-system-ppc64: Failed to load virtio-gpu:virtio
> qemu-system-ppc64: error while loading state for instance 0x0 of device
> 'pci@800000020000000:02.0/virtio-gpu'
> qemu-system-ppc64: load of migration failed: Invalid argument
>
> Is this something known?
Thanks for the report, I wasn't aware of it.
The problem actually started from:
commit a4ee4c8baa37154f42b4dc6a13fee79268d15238
Author: Eduardo Habkost <address@hidden>
Date: Wed Dec 5 17:57:03 2018 -0200
virtio: Helper for registering virtio device types
Since that commit virtio_gpu_pci_properties got lost (overwritten in
virtio_pci_generic_class_init), and thus the PCI device changed (bar1
missing etc).
My patches actually restored it as a side effect of defining a new base class.
There are other devices affected with missing vectors and ioeventfd
(and sometime a few others props): virtio-crypto-pci, virtio-9p-pci,
vhost-user-blk-pci and more. They probably suffer similar migration
issues.
Given that this is a 4.0 regression, I think we should fix the
remaining devices, and backport fixes to 4.0-stable. I am looking at
it
--
Marc-André Lureau