Dmitry,

I had an assumption that you are using -machine q35 already but
If not, you will need this too for enabling PCIE bus.

> -----Original Message-----
> From: Kim, Dongwon
> Sent: Tuesday, September 30, 2025 8:09 PM
> To: 'Dmitry Osipenko' <[email protected]>; dri-
> [email protected]
> Subject: RE: [PATCH v4 0/3] Virtio-GPU S4 support
> 
> Hi Dmitry,
> 
> > Subject: Re: [PATCH v4 0/3] Virtio-GPU S4 support
> >
> > On 9/24/25 22:47, [email protected] wrote:
> > > From: Dongwon Kim <[email protected]>
> > >
> > > This patch series introduces support for handling hibernation (S4)
> > > in the virtio-gpu driver by implementing .freeze and .restore hooks,
> > > along with a PM notifier to restore GPU resources upon resume.
> > >
> > > Patch 1 adds virtgpu_freeze and virtgpu_restore functions, which
> > > manage virtio queue teardown before suspend/hibernation and
> > > reinitialization during resume.
> > >
> > > Patch 2 implements a mechanism to track and restore
> > > virtio_gpu_object instances, addressing the issue where QEMU
> > > discards resources during virtio-gpu-reset triggered by hibernation.
> > >
> > > Patch 3 adds a PM notifier that triggers resubmission of GPU objects
> > > to QEMU when the guest resumes from hibernation.
> > >
> > > These changes ensure that the virtio-gpu driver can reliably restore
> > > virtio-gpu resources after hibernation, preventing resource loss
> > > that leads to system's instability.
> > >
> > > v2: 10ms sleep is added in virtgpu_freeze to avoid the situation
> > >     the driver is locked up during resumption.
> > >
> > > v3: Plain 10ms delay (v2) is replaced with wait calls which wait until
> > >     the virtio queue is empty.
> > >     (Dmitry Osipenko)
> > >
> > > v4: New version of patchset only covers S4 case because loss of resources
> > >     in S3 case can be avoided by skipping virtio-gpu-reset in QEMU
> > >     (hw/display/virtio-gpu.c). For this, virtio-gpu-pci device should be
> > >     attached to PCIE bus AND a PCIE option, 'x-pcie-pm-no-soft-reset'
> needs
> > >     to be enabled when launching QEMU
> > >     (e.g. -device
> > > virtio-gpu-pci,bus=port,x-pcie-pm-no-soft-reset=true)
> > >
> > > Dongwon Kim (3):
> > >   drm/virtio: Freeze and restore hooks to support suspend and resume
> > >   drm/virtio: Add support for saving and restoring virtio_gpu_objects
> > >   drm/virtio: Restore Virt-GPU res on hibernation resume via PM
> > > notifier
> > >
> > >  drivers/gpu/drm/virtio/virtgpu_drv.c    | 60 ++++++++++++++++++++-
> > >  drivers/gpu/drm/virtio/virtgpu_drv.h    | 13 +++++
> > >  drivers/gpu/drm/virtio/virtgpu_kms.c    | 49 ++++++++++++++---
> > >  drivers/gpu/drm/virtio/virtgpu_object.c | 71
> > > +++++++++++++++++++++++++
> > >  4 files changed, 186 insertions(+), 7 deletions(-)
> > >
> >
> > Hi,
> >
> > Hibernation works well for me with v4, going to apply patches soon.
> >
> > Re `x-pcie-pm-no-soft-reset=true`, apparently it's not enough to have it for
> S3.
> > I'm still seeing virtio-gpu being reset with S3 and this reset comes
> > from a guest kernel writing PCI reg, resetting PCI device on kernel
> > resume. Will look further into it.
> 
> [Kim, Dongwon] That option only works when you set up virtio-gpu as a PCIE
> device.
> I am wondering if you set up your PCIE bus. This are params I added for it.
> -device pcie-root-port,id=root_port1,bus=pcie.0 \ -device virtio-
> vga,bus=root_port1,x-pcie-pm-no-soft-reset=true \
> 
> >
> > --
> > Best regards,
> > Dmitry

Reply via email to