[libvirt PATCH 03/11] qemu_snapshot: revert: drop unused loadvm code
Pavel Hrdina
phrdina at redhat.com
Mon Nov 22 12:49:25 UTC 2021
On Tue, Nov 16, 2021 at 03:30:02PM +0100, Peter Krempa wrote:
> On Mon, Nov 15, 2021 at 17:22:46 +0100, Pavel Hrdina wrote:
> > Now that we always restart QEMU process the loadvm code is unused and
> > can be dropped.
> >
> > Signed-off-by: Pavel Hrdina <phrdina at redhat.com>
> > ---
> > src/qemu/qemu_snapshot.c | 96 +++++++++++-----------------------------
> > 1 file changed, 26 insertions(+), 70 deletions(-)
> >
> > diff --git a/src/qemu/qemu_snapshot.c b/src/qemu/qemu_snapshot.c
> > index 661f74146c..251a0e5cfa 100644
> > --- a/src/qemu/qemu_snapshot.c
> > +++ b/src/qemu/qemu_snapshot.c
> > @@ -1982,11 +1982,6 @@ qemuSnapshotRevert(virDomainObj *vm,
> > start_flags |= VIR_QEMU_PROCESS_START_PAUSED;
> >
> > /* Transitions 2, 3, 5, 6, 8, 9 */
> > - /* When using the loadvm monitor command, qemu does not know
> > - * whether to pause or run the reverted domain, and just stays
> > - * in the same state as before the monitor command, whether
> > - * that is paused or running. We always pause before loadvm,
> > - * to have finer control. */
> > if (virDomainObjIsActive(vm)) {
> > /* Transitions 5, 6, 8, 9 */
> > qemuProcessStop(driver, vm,
> > @@ -1998,78 +1993,39 @@ qemuSnapshotRevert(virDomainObj *vm,
> > VIR_DOMAIN_EVENT_STOPPED,
> > detail);
> > virObjectEventStateQueue(driver->domainEventState, event);
> > - goto load;
>
> So this jumped ...
>
> > -
> > - if (virDomainObjGetState(vm, NULL) == VIR_DOMAIN_RUNNING) {
> > - /* Transitions 5, 6 */
> > - if (qemuProcessStopCPUs(driver, vm,
> > - VIR_DOMAIN_PAUSED_FROM_SNAPSHOT,
> > - QEMU_ASYNC_JOB_START) < 0)
> > - goto endjob;
> > - if (!virDomainObjIsActive(vm)) {
> > - virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> > - _("guest unexpectedly quit"));
> > - goto endjob;
> > - }
> > - }
> > -
> > - if (qemuDomainObjEnterMonitorAsync(driver, vm,
> > - QEMU_ASYNC_JOB_START) < 0)
> > - goto endjob;
> > - rc = qemuMonitorLoadSnapshot(priv->mon, snap->def->name);
>
> (Don't forget do delete the monitor code for 'loadvm' ;))
>
> > - if (qemuDomainObjExitMonitor(driver, vm) < 0)
> > - goto endjob;
> > - if (rc < 0) {
> > - /* XXX resume domain if it was running before the
> > - * failed loadvm attempt? */
> > - goto endjob;
> > - }
> > -
> > - virCPUDefFree(priv->origCPU);
> > - priv->origCPU = g_steal_pointer(&origCPU);
> > -
> > - if (cookie && !cookie->slirpHelper)
> > - priv->disableSlirp = true;
> > -
> > - if (inactiveConfig) {
> > - virDomainObjAssignDef(vm, inactiveConfig, false, NULL);
> > - inactiveConfig = NULL;
> > - defined = true;
> > - }
> > } else {
> > /* Transitions 2, 3 */
> > - load:
>
> ... here.
>
> > was_stopped = true;
>
> Which meant that 'was_stopped' was set to true when reverting when the VM
> was killed, which is not happening after this patch.
>
> The commit message is claiming pure dead code removal, thus this must be
> fixed or justified.
True, originally I had the `was_stopped = true;` after the if part, not
in the else part and it was correct, no idea what made me to change the
code. I'll fix it.
Thanks,
Pavel
> > + }
> >
> > - if (inactiveConfig) {
> > - virDomainObjAssignDef(vm, inactiveConfig, false, NULL);
> > - inactiveConfig = NULL;
> > - defined = true;
> > - }
>
> The rest looks good.
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20211122/0fd3b79a/attachment-0001.sig>
More information about the libvir-list
mailing list