[RFC PATCH 0/2] Virtio-GPU suspend and resume

Dmitry Osipenko dmitry.osipenko at collabora.com
Mon May 5 17:11:43 UTC 2025


On 4/19/25 02:29, dongwon.kim at intel.com wrote:
> From: Dongwon Kim <dongwon.kim at intel.com>
> 
> This patch series introduces a freeze and restore mechanism for
> the virtio-gpu driver:
> 
> First patch adds `virtgpu_freeze` and `virtgpu_restore` functions.
> These functions handle the deletion of virtio queues before suspension and
> their recreation during the restoration process.
> 
> Second patch implements a mechanism for restoring `virtio_gpu_object` instances.
> This is necessary because the host (QEMU) deletes all associated resources during
> the virtio-gpu reset, which occurs as part of the restoration process.
> 
> These changes ensure that the virtio-gpu driver can properly handle suspend and
> resume scenarios without resource loss.

Resetting GPU by QEMU on suspend sounds like a wrong behaviour. Are you
talking about upstream QEMU?

Could you please point at the QEMU code where it handles virtio-gpu
suspend/resume? Don't see where it happens.

I tried to apply your kernel patches and then suspend/resume guest
kernel, it doesn't work:

virtio_gpu_transfer_to_host_2d: no backing storage 2
[   22.909454] [drm:virtio_gpu_dequeue_ctrl_func] *ERROR* response
0x1200 (command 0x105)
virtio_gpu_transfer_to_host_2d: no backing storage 2
[   23.169138] [drm:virtio_gpu_dequeue_ctrl_func] *ERROR* response
0x1200 (command 0x105)

Cc: +Alex Bennée +Akihiko Odaki

-- 
Best regards,
Dmitry



More information about the dri-devel mailing list