Message ID | 20240904103722.946194-1-jmarcin@redhat.com (mailing list archive) |
---|---|
Headers | show |
Series | virtio-mem: Implement support for suspend+wake-up with plugged memory | expand |
On 04.09.24 12:37, Juraj Marcin wrote: > Currently, the virtio-mem device would unplug all the memory with any > reset request, including when the machine wakes up from a suspended > state (deep sleep). This would lead to a loss of the contents of the > guest memory and therefore is disabled by the virtio-mem Linux Kernel > driver unless the VIRTIO_MEM_F_PERSISTENT_SUSPEND virtio feature is > exposed. [1] > > To make deep sleep with virtio-mem possible, we need to differentiate > cold start reset from wake-up reset. The first patch updates > qemu_system_reset() and MachineClass children to accept ResetType > instead of ShutdownCause, which then could be passed down the device > tree. The second patch then introduces the new reset type for the > wake-up event and updates the i386 wake-up method (only architecture > using the explicit wake-up method). > > The third patch replaces LegacyReset with the Resettable interface in > virtio-mem, so the memory device can access the reset type in the hold > phase. The last patch of the series implements the final support in the > hold phase of the virtio-mem reset callback and exposes > VIRTIO_MEM_F_PERSISTENT_SUSPEND to the kernel. > > [1]: https://lore.kernel.org/all/20240318120645.105664-1-david@redhat.com/ Thanks, I'll queue this to https://github.com/davidhildenbrand/qemu.git mem-next @Peter, it would be great if you could have another look at patch #2, thanks.