qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [QEMU PATCH v2 0/1] S3 support


From: Chen, Jiqian
Subject: Re: [QEMU PATCH v2 0/1] S3 support
Date: Fri, 30 Jun 2023 07:45:33 +0000

Hi all,

V2 patch of kernel is 
https://lore.kernel.org/lkml/20230630073448.842767-1-Jiqian.Chen@amd.com/T/#t.

On 2023/6/30 15:00, Jiqian Chen wrote:
> v2:
> 
> Hi all,
> 
> Thanks to Marc-André Lureau, Robert Beckett and Gerd Hoffmann for
> their advice and guidance. V2 makes below changes:
> 
> * Change VIRTIO_CPU_CMD_STATUS_FREEZING to 0x0400 (<0x1000)
> * Add virtio_gpu_device_unrealize to destroy resources to solve
>   potential memory leak problem. This also needs hot-plug support.
> * Add a new feature flag VIRTIO_GPU_F_FREEZING, so that guest and
>   host can negotiate whenever freezing is supported or not.
> 
> Best regards,
> Jiqian Chen.
> 
> v1:
> 
> link: 
> 20230608025655.1674357-1-Jiqian.Chen@amd.com/">https://lore.kernel.org/qemu-devel/20230608025655.1674357-1-Jiqian.Chen@amd.com/
> 
> Hi all,
> 
> I am working to implement virtgpu S3 function on Xen.
> 
> Currently on Xen, if we start a guest who enables virtgpu, and then
> run "echo mem > /sys/power/state" to suspend guest. And run
> "sudo xl trigger <guest id> s3resume" to resume guest. We can find that
> the guest kernel comes back, but the display doesn't. It just shown a
> black screen.
> 
> Through reading codes, I founded that when guest was during suspending,
> it called into Qemu to call virtio_gpu_gl_reset. In virtio_gpu_gl_reset,
> it destroyed all resources and reset renderer. This made the display
> gone after guest resumed.
> 
> I think we should keep resources or prevent they being destroyed when
> guest is suspending. So, I add a new status named freezing to virtgpu,
> and add a new ctrl message VIRTIO_GPU_CMD_STATUS_FREEZING to get
> notification from guest. If freezing is set to true, and then Qemu will
> realize that guest is suspending, it will not destroy resources and will
> not reset renderer. If freezing is set to false, Qemu will do its origin
> actions, and has no other impaction.
> 
> And now, display can come back and applications can continue their
> status after guest resumes.
> 
> Jiqian Chen (1):
>   virtgpu: do not destroy resources when guest suspend
> 
>  hw/display/virtio-gpu-base.c                |  3 ++
>  hw/display/virtio-gpu-gl.c                  |  9 +++-
>  hw/display/virtio-gpu-virgl.c               |  7 +++
>  hw/display/virtio-gpu.c                     | 52 ++++++++++++++++++++-
>  hw/virtio/virtio.c                          |  3 ++
>  include/hw/virtio/virtio-gpu.h              |  6 +++
>  include/standard-headers/linux/virtio_gpu.h | 15 ++++++
>  7 files changed, 92 insertions(+), 3 deletions(-)
> 

-- 
Best regards,
Jiqian Chen.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]