* [Qemu-devel] Make NVME device "migratable" (savevm)
@ 2017-08-25 8:39 Sergei Dyshel
2017-08-29 10:09 ` Stefan Hajnoczi
0 siblings, 1 reply; 4+ messages in thread
From: Sergei Dyshel @ 2017-08-25 8:39 UTC (permalink / raw)
To: qemu-devel
Hi all,
>From what I understand, I can't "savevm" a VM that uses NVME device because
it has ".unmigratable = 1" in the code. What support must be implemented in
order to make it "migratable"?
--
Regards,
Sergei Dyshel
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Qemu-devel] Make NVME device "migratable" (savevm) 2017-08-25 8:39 [Qemu-devel] Make NVME device "migratable" (savevm) Sergei Dyshel @ 2017-08-29 10:09 ` Stefan Hajnoczi 2017-08-29 20:40 ` Keith Busch 0 siblings, 1 reply; 4+ messages in thread From: Stefan Hajnoczi @ 2017-08-29 10:09 UTC (permalink / raw) To: Sergei Dyshel; +Cc: qemu-devel, Keith Busch On Fri, Aug 25, 2017 at 11:39:30AM +0300, Sergei Dyshel wrote: > Hi all, > From what I understand, I can't "savevm" a VM that uses NVME device because > it has ".unmigratable = 1" in the code. What support must be implemented in > order to make it "migratable"? CCing Keith Busch, the NVMe maintainer. $ scripts/get_maintainer.pl -f hw/block/nvme.c Keith Busch <keith.busch@intel.com> (supporter:nvme) ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Qemu-devel] Make NVME device "migratable" (savevm) 2017-08-29 10:09 ` Stefan Hajnoczi @ 2017-08-29 20:40 ` Keith Busch 2017-08-30 12:38 ` Stefan Hajnoczi 0 siblings, 1 reply; 4+ messages in thread From: Keith Busch @ 2017-08-29 20:40 UTC (permalink / raw) To: Stefan Hajnoczi; +Cc: Sergei Dyshel, qemu-devel On Tue, Aug 29, 2017 at 11:09:36AM +0100, Stefan Hajnoczi wrote: > On Fri, Aug 25, 2017 at 11:39:30AM +0300, Sergei Dyshel wrote: > > Hi all, > > From what I understand, I can't "savevm" a VM that uses NVME device because > > it has ".unmigratable = 1" in the code. What support must be implemented in > > order to make it "migratable"? > > CCing Keith Busch, the NVMe maintainer. To make it migratable, you'll need implement the VMStateDescription to save and restore the entire controller state, including all the queues. It doesn't actually look like there's a much state to track compared to other migratale devices, I just never got any time to write it out. ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Qemu-devel] Make NVME device "migratable" (savevm) 2017-08-29 20:40 ` Keith Busch @ 2017-08-30 12:38 ` Stefan Hajnoczi 0 siblings, 0 replies; 4+ messages in thread From: Stefan Hajnoczi @ 2017-08-30 12:38 UTC (permalink / raw) To: Keith Busch; +Cc: Sergei Dyshel, qemu-devel On Tue, Aug 29, 2017 at 04:40:55PM -0400, Keith Busch wrote: > On Tue, Aug 29, 2017 at 11:09:36AM +0100, Stefan Hajnoczi wrote: > > On Fri, Aug 25, 2017 at 11:39:30AM +0300, Sergei Dyshel wrote: > > > Hi all, > > > From what I understand, I can't "savevm" a VM that uses NVME device because > > > it has ".unmigratable = 1" in the code. What support must be implemented in > > > order to make it "migratable"? > > > > CCing Keith Busch, the NVMe maintainer. > > To make it migratable, you'll need implement the VMStateDescription to > save and restore the entire controller state, including all the queues. > It doesn't actually look like there's a much state to track compared to > other migratale devices, I just never got any time to write it out. One thing unique to QEMU's block layer is that the -drive werror=/rerror= option lets the user specify an error handling policy for I/O requests. If the policy is 'stop' or 'enospc' then the emulated storage controller must hang on to the I/O request and re-submit it when VM execution resumes (usually when the user issues the 'cont' command at the monitor). For example, if QEMU hits ENOSPC while writing a previously unwritten sector in the disk image file, then VM execution can be paused. The host system administrator can arrange for more disk space and then issue the 'cont' QEMU monitor command. This resumes the VM and QEMU retries the I/O request without ever reporting an I/O error to the guest. You can see how this is implemented in hw/block/virtio-blk.c and other emulated storage controllers. This feature requires live migration support so that the list of failed I/O requests can be sent to the destination host during live migration. If you decide to enable live migration, please consider how this should be implemented for NVMe. Stefan ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2017-08-30 12:38 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-08-25 8:39 [Qemu-devel] Make NVME device "migratable" (savevm) Sergei Dyshel 2017-08-29 10:09 ` Stefan Hajnoczi 2017-08-29 20:40 ` Keith Busch 2017-08-30 12:38 ` Stefan Hajnoczi
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).