• Michael Kelley's avatar
    Drivers: hv: vmbus: Increase wait time for VMbus unload · 77db0ec8
    Michael Kelley authored
    When running in Azure, disks may be connected to a Linux VM with
    read/write caching enabled. If a VM panics and issues a VMbus
    UNLOAD request to Hyper-V, the response is delayed until all dirty
    data in the disk cache is flushed.  In extreme cases, this flushing
    can take 10's of seconds, depending on the disk speed and the amount
    of dirty data. If kdump is configured for the VM, the current 10 second
    timeout in vmbus_wait_for_unload() may be exceeded, and the UNLOAD
    complete message may arrive well after the kdump kernel is already
    running, causing problems.  Note that no problem occurs if kdump is
    not enabled because Hyper-V waits for the cache flush before doing
    a reboot through the BIOS/UEFI code.
    
    Fix this problem by increasing the timeout in vmbus_wait_for_unload()
    to 100 seconds. Also output periodic messages so that if anyone is
    watching the serial console, they won't think the VM is completely
    hung.
    
    Fixes: 911e1987 ("Drivers: hv: vmbus: Add timeout to vmbus_wait_for_unload")
    Signed-off-by: default avatarMichael Kelley <mikelley@microsoft.com>
    Reviewed-by: default avatarVitaly Kuznetsov <vkuznets@redhat.com>
    Link: https://lore.kernel.org/r/1618894089-126662-1-git-send-email-mikelley@microsoft.comSigned-off-by: default avatarWei Liu <wei.liu@kernel.org>
    77db0ec8
channel_mgmt.c 44 KB