I was looking at something else about Hyper-V at Microsoft Docs, and got on the page about Hyper-V CPU schedule types: https://docs.microsoft.com/en-us/win...cheduler-types
Months ago I had changed it to Core thinking it would make my VMs more secure(please read the whole page through), and today I noticed something important:
Root scheduler use on client systems
Starting with Windows 10 version 1803, the root scheduler is used by default on client systems only,
where the hypervisor may be enabled in support of virtualization-based security and WDAG workload isolation, and for proper operation of future systems with heterogeneous core architectures. This is the only supported hypervisor scheduler configuration for client systems. Administrators should not attempt to override the default hypervisor scheduler type on Windows 10 client systems.(which I successfully did)
The reason I had switched it to core:
The overall result of the core scheduler is that:
Guest VPs are constrained to run on underlying physical core pairs, isolating a VM to processor core boundaries,
thus reducing vulnerability to side-channel snooping attacks from malicious VMs.
Variability in throughput is significantly reduced.
Performance is potentially reduced, because if only one of a group of VPs can run, only one of the instruction streams in the core executes while the other is left idle.
The
OS and applications running in the guest virtual machine can utilize SMT behavior and programming interfaces (APIs) to control and distribute work across SMT threads, just as they would when run non-virtualized.
A
strong security boundary for guest workload isolation - Guest VPs are constrained to run on underlying physical core pairs, reducing vulnerability to side-channel snooping attacks.
The core scheduler will be used by default starting in Windows Server 2019. On Windows Server 2016, the core scheduler is optional and must be explicitly enabled by the Hyper-V host administrator, and the classic scheduler is the default.
But I checked today to see what the setting was, since my repair install:
Code:
PS C:\Users\cliff> Get-WinEvent -FilterHashTable @{ProviderName="Microsoft-Windows-Hyper-V-Hypervisor"; ID=2} -MaxEvents 1
ProviderName: Microsoft-Windows-Hyper-V-Hypervisor
TimeCreated Id LevelDisplayName Message
----------- -- ---------------- -------
16-May-19 10:07:43 2 Information Hypervisor scheduler type is 0x4.
0x4 scheduler is the Root scheduler which WDAG needs
Information
For anyone having problems getting WDAG to install, and wanting to troubleshoot and check their scheduling, open powershell:
Get-WinEvent -FilterHashTable @{ProviderName="Microsoft-Windows-Hyper-V-Hypervisor"; ID=2} -MaxEvents 1
Hypervisor scheduler type is 0x#
1 = Classic scheduler, SMT disabled
2 = Classic scheduler
3 = Core scheduler
4 = Root scheduler
I already sent my find to Microsoft through the Feedback Hub: Feedback Hub - Windows Insider