On 7/30/2020 1:15 PM, Paolo Bonzini wrote: > On 30/07/20 17:14, Steve Sistare wrote: >> The first set of patches adds the cprsave and cprload commands to save and >> restore VM state, and allow the host kernel to be updated and rebooted in >> between. The VM must create guest RAM in a persistent shared memory file, >> such as /dev/dax0.0 or persistant /dev/shm PKRAM as proposed in >> https://lore.kernel.org/lkml/1588812129-8596-1-git-send-email-anthony.yzn...@oracle.com/ >> >> cprsave stops the VCPUs and saves VM device state in a simple file, and >> thus supports any type of guest image and block device. The caller must >> not modify the VM's block devices between cprsave and cprload. > > Stupid question, what does cpr stand for? If it is checkpoint/restore,
Checkpoint/restart. An acronym from my HPC days. I will spell it out. > please spell it out. Also, how does the functionality compare to > xen-save-devices-state and xen-load-devices-state? qmp_xen_save_devices_state serializes device state to a file which is loaded on the target for a live migration. It performs some of the same actions as cprsave/cprload but does not support live update-in-place. >> cprsave and cprload support guests with vfio devices if the caller first >> suspends the guest by issuing guest-suspend-ram to the qemu guest agent. >> The guest drivers suspend methods flush outstanding requests and re- >> initialize the devices, and thus there is no device state to save and >> restore. > > This probably should be allowed even for regular migration. Can you > generalize the code as a separate series? Maybe. I think that would be a distinct patch that ignores the vfio migration blocker if the state is suspended. Plus a qemu agent call to do the suspend. Needs more thought. - Steve > > Thanks, > > Paolo >