RE: [PATCH v3 4/4] hv_utils: Add the support of hibernation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Dexuan Cui <decui@xxxxxxxxxxxxx> Sent: Saturday, January 25, 2020 11:54 AM
> 
> Add util_pre_suspend() and util_pre_resume() for some hv_utils devices
> (e.g. kvp/vss/fcopy), because they need special handling before
> util_suspend() calls vmbus_close().
> 
> For kvp, all the possible pending work items should be cancelled.
> 
> For vss and fcopy, some extra clean-up needs to be done, i.e. fake a
> THAW message for hv_vss_daemon and fake a CANCEL_FCOPY message for
> hv_fcopy_daemon, otherwise when the VM resums back, the daemons
> can end up in an inconsistent state (i.e. the file systems are
> frozen but will never be thawed; the file transmitted via fcopy
> may not be complete). Note: there is an extra patch for the daemons:
> "Tools: hv: Reopen the devices if read() or write() returns errors",
> because the hv_utils driver can not guarantee the whole transaction
> finishes completely once util_suspend() starts to run (at this time,
> all the userspace processes are frozen).
> 
> util_probe() disables channel->callback_event to avoid the race with
> the channel callback.
> 
> Signed-off-by: Dexuan Cui <decui@xxxxxxxxxxxxx>
> 
> ---
> Changes in v2:
>     Handles fcopy/vss specially to avoid possible inconsistent states.
> 
> Changes in v3 (I addressed Michael's comments):
>     Removed unneeded blank lines.
>     Simplified the error handling logic by allocating memory earlier.
>     Added a comment before util_suspend(): when we're in the function,
>       all the userspace processes have been frozen.
> 
>  drivers/hv/hv_fcopy.c     | 54 +++++++++++++++++++++++++++++++++-
>  drivers/hv/hv_kvp.c       | 43 +++++++++++++++++++++++++--
>  drivers/hv/hv_snapshot.c  | 55 ++++++++++++++++++++++++++++++++--
>  drivers/hv/hv_util.c      | 62 ++++++++++++++++++++++++++++++++++++++-
>  drivers/hv/hyperv_vmbus.h |  6 ++++
>  include/linux/hyperv.h    |  2 ++
>  6 files changed, 216 insertions(+), 6 deletions(-)
> 

Reviewed-by: Michael Kelley <mikelley@xxxxxxxxxxxxx>




[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux