Message ID | 20250114230746.3268797-1-peterx@redhat.com (mailing list archive) |
---|---|
Headers | show |
Series | migration: Switchover phase refactoring | expand |
On Tue, Jan 14, 2025 at 18:07:30 -0500, Peter Xu wrote: > CI: https://gitlab.com/peterx/qemu/-/pipelines/1625266692 > (note: warning is present on rust stuff, but shouldn't be relevant) > > This series refactors the migration switchover path quite a bit. I started > this work initially to measure the JSON writer overhead, but then I decided > to cleanup the switchover path in general when I am at it altogether, as I > wanted to do this for a long time. > > A few major things I tried to do: > ... > - DEVICE migration state > > QEMU has a very special DEVICE migration state, that only happens with > precopy, and only when pause-before-switchover capability is enabled. > Due to that specialty we can't merge precopy and postcopy code on > switchover starts, because the state machine will be different. > > However after I checked the history and also with libvirt developers, > this seems unnecessary. So I had one patch making DEVICE state to be > the "switchover" phase for precopy/postcopy unconditionally. That will > make the state machine much easier for both modes, meanwhile nothing is > expected to break with it (but please still shoot if anyone knows / > suspect something will, or could, break..). No problem from libvirt side... Tested-by: Jiri Denemark <jdenemar@redhat.com>
On Wed, Jan 15, 2025 at 10:12:45AM +0100, Jiri Denemark wrote: > On Tue, Jan 14, 2025 at 18:07:30 -0500, Peter Xu wrote: > > CI: https://gitlab.com/peterx/qemu/-/pipelines/1625266692 > > (note: warning is present on rust stuff, but shouldn't be relevant) > > > > This series refactors the migration switchover path quite a bit. I started > > this work initially to measure the JSON writer overhead, but then I decided > > to cleanup the switchover path in general when I am at it altogether, as I > > wanted to do this for a long time. > > > > A few major things I tried to do: > > > ... > > - DEVICE migration state > > > > QEMU has a very special DEVICE migration state, that only happens with > > precopy, and only when pause-before-switchover capability is enabled. > > Due to that specialty we can't merge precopy and postcopy code on > > switchover starts, because the state machine will be different. > > > > However after I checked the history and also with libvirt developers, > > this seems unnecessary. So I had one patch making DEVICE state to be > > the "switchover" phase for precopy/postcopy unconditionally. That will > > make the state machine much easier for both modes, meanwhile nothing is > > expected to break with it (but please still shoot if anyone knows / > > suspect something will, or could, break..). > > No problem from libvirt side... > > Tested-by: Jiri Denemark <jdenemar@redhat.com> This is definitely reassuring.. thanks a lot, Jiri!