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

Long Li <[email protected]> Thu, 30 Jul 2026 20:32:59 +0000
Newsgroups org.kernel.vger.linux-hyperv,dev.linux.lists.virtualization,org.freedesktop.lists.dri-devel,org.kernel.vger.linux-kernel,org.kernel.vger.linux-scsi,org.kernel.vger.netdev
Message-ID <SA1PR21MB6683DC244AFD27148A0AA213CEC92@SA1PR21MB6683.namprd21.prod.outlook.com>
>=20
> From: Michael Kelley <[email protected]>
>=20
> Linux code for running as a Hyper-V guest includes special cases for runn=
ing 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 custo=
mer
> has contracted for extended security updates). Given the release of subse=
quent
> versions with improved functionality, there's no need to continue to supp=
ort 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

>=20
> Simplify Linux code by removing special cases for running on these old ve=
rsions
> 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.
>=20
> Some VMBus drivers have device-specific protocols with the Hyper-V host.
> Further simplify the code by removing the use of protocol versions that a=
re
> specific to WS2012/Win8 and earlier.
>=20
> Finally, the WS2012/Win8 versions of Hyper-V were the last to use message=
s to
> deliver synthetic timer interrupts. Starting in WS2016/Win10, stimer inte=
rrupts
> 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 b=
e
> independent of each other. The final disentangling will come as a follow-=
on
> patch set.
>=20
> 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
>=20
> There's no specific urgency to removing the special case code for
> WS2012/Win8, so if the broader Linux kernel community surfaces a reason w=
hy
> 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 t=
he
> point that it has any value.
>=20
> 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
>=20
>  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(-)
>=20
> --
> 2.25.1