> 
> From: Michael Kelley <[email protected]>
> 
> Linux code for running as a Hyper-V guest includes special cases for running 
> on
> Hyper-V in WS2012/2012R2 and Windows 8/8.1. These versions were initially
> released 14 years ago, and official support ended in 2023 (unless a customer
> has contracted for extended security updates). Given the release of subsequent
> versions with improved functionality, there's no need to continue to support 
> the
> latest Linux kernels on these versions of Hyper-V. If someone is running 
> Linux on
> one of these older Hyper-V versions and doesn't want to upgrade, they can
> continue to do so as presumably they don't want upgrade the Linux version
> either.

This patch set has significant implication for customer running older Hyper-V 
versions. There are probably a large number out there.

Is this clearly communicated to all the customers in the field? Is there a link 
from official Microsoft statements on support statement of this:
"they can continue to do so as presumably they don't want upgrade the Linux 
version either."

Please point to the statement that they can't upgrade Linux. A link in the 
commit message will be helpful.

Thanks,
Long

> 
> Simplify Linux code by removing special cases for running on these old 
> versions
> of Hyper-V. This includes removing the negotiation of the VMBus protocol
> versions for WS2012/Win8, and the special case code based on those VMBus
> protocol versions. Changes are in the core VMBus code and several drivers for
> synthetic VMBus devices.
> 
> Some VMBus drivers have device-specific protocols with the Hyper-V host.
> Further simplify the code by removing the use of protocol versions that are
> specific to WS2012/Win8 and earlier.
> 
> Finally, the WS2012/Win8 versions of Hyper-V were the last to use messages to
> deliver synthetic timer interrupts. Starting in WS2016/Win10, stimer 
> interrupts
> are delivered to their own assigned interrupt vector (called "Direct Mode"). 
> So
> remove the code for handling timer interrupts delivered as messages. This
> removal has a broader benefit in removing a key blocker to disentangling
> VMBus code (which handles the messages) and stimer code, as they should be
> independent of each other. The final disentangling will come as a follow-on
> patch set.
> 
> Testing:
> * VM on local Hyper-V on up-to-date Windows 11
> * Added temp debug code to suppress Direct Mode enumeration. Fallback
>   to LAPIC timer worked as expected (x86/x64 only)
> * Azure VM DC16eds v6: TDX CoCo VM with HvLite paravisor
> * Azure VM DC16ads v6: SEV-SNP VM with an older paravisor
> * Azure VM D16alds_v7: normal AMD x86 VM with HvLite paravisor
> * Azure VM D16plds v6: normal ARM64 VM with MSFT Cobalt processor
> * Not tested running in VTL2
> 
> There's no specific urgency to removing the special case code for
> WS2012/Win8, so if the broader Linux kernel community surfaces a reason why
> this clean-up should not be done now, we can wait.
> But I think we want to eventually stop carrying around this extra baggage, and
> based on discussions with the Hyper-V team within Microsoft, we're past the
> point that it has any value.
> 
> Michael Kelley (6):
>   Drivers: hv: Remove support for WS2012/2012R2 & Win8/8.1 version of
>     Hyper-V
>   hv_sock: Remove check for old Hyper-V hosts
>   hv_netvsc: Remove GPADL teardown special case for old Hyper-V hosts
>   drm_hyperv: Remove support for synth video protocol of old Hyper-V
>     hosts
>   scsi: storvsc: Remove support for storvsc protocol of old Hyper-V
>     hosts
>   clocksource: hyper-v: Remove support for stimer interrupts in message
>     mode
> 
>  arch/x86/hyperv/hv_init.c                 |  17 +--
>  arch/x86/kernel/cpu/mshyperv.c            |   4 +-
>  drivers/clocksource/hyperv_timer.c        | 150 +++-------------------
>  drivers/gpu/drm/hyperv/hyperv_drm_proto.c |  33 ++---
>  drivers/hv/channel_mgmt.c                 |   4 -
>  drivers/hv/connection.c                   |   8 +-
>  drivers/hv/hv.c                           |   4 -
>  drivers/hv/hv_balloon.c                   |  36 +++---
>  drivers/hv/hv_snapshot.c                  |   5 -
>  drivers/hv/vmbus_drv.c                    |  10 +-
>  drivers/net/hyperv/netvsc.c               |  20 +--
>  drivers/scsi/storvsc_drv.c                |  53 ++------
>  include/clocksource/hyperv_timer.h        |   6 -
>  include/linux/hyperv.h                    |   5 +-
>  net/vmw_vsock/hyperv_transport.c          |   3 -
>  15 files changed, 76 insertions(+), 282 deletions(-)
> 
> --
> 2.25.1


Reply via email to