RE: [EXTERNAL] [PATCH 0/6] Remove support for Windows Server 2012/2012R2 & Win8/Win8.1 versions of Hyper-V

From: Long Li

Date: Thu Jul 30 2026 - 16:33:39 EST


>
> From: Michael Kelley <mhklinux@xxxxxxxxxxx>
>
> 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