Messages in this thread | | | From | Dexuan Cui <> | Subject | RE: [PATCH 1/3] hv_utils: Add the support of hibernation | Date | Sat, 21 Sep 2019 07:26:34 +0000 |
| |
> From: Vitaly Kuznetsov <vkuznets@redhat.com> > Sent: Thursday, September 19, 2019 3:28 AM > > Dexuan Cui <decui@microsoft.com> writes: > > > BTW, for vss, maybe the VM should not hibernate if there is a backup > > ongoing? -- if the file system is frozen by hv_vss_daemon, and the VM > > hibernates, then when the VM resumes back, it's almost always true that > > the VM won't receive the host's VSS_OP_THAW request, and the VM will > > end up in an unusable state. > > Makes sense. Or, alternatively, can we postpone hibernation until after > VSS_OP_THAW? > > Vitaly
It looks we should not postpone that, because: 1. When we're in util_suspend(), all the user space processes have been frozen, so even if the VM receives the VSS_OP_THAW message form the host, there is no chance for the hv_vss_daemon to handle it.
2. Between the window the host sends the VSS_OP_FREEZE message and the VSS_OP_THAW mesasge, util_suspend() may jump in and close the channel, and then the host will not send a VSS_OP_THAW.
3. The host doesn't guarantee how soon it sends the VSS_OP_THAW message, though in practice IIRC the host *usually* sends the message soon. The hibernation process has a watchdog of 120s set by dpm_watchdog_set(): if dpm_suspend() (which calls util_probe()) can not finish in 120 seconds, the hibernation will be aborted.
3 may not look like a strong reason, but generally speaking I'd like to avoid an indeterminate dependency.
Thanks, -- Dexuan
| |