Hi Vitaly, On 7/12/22 6:50 AM, Vitaly Kuznetsov wrote: > Windows 10/11 guests with Hyper-V role (WSL2) enabled are observed to > hang upon boot or shortly after when a non-default TSC frequency was > set for L1. The issue is observed on a host where TSC scaling is Would you mind helping clarify if it is L1 or L2 that hangs? The commit message "Windows 10/11 guests with Hyper-V role (WSL2)" confuses me if it is L1 or L2 (perhaps due to my lack of knowledge on hyper-v) that hangs. Thank you very much! Dongli Zhang > supported. The problem appears to be that Windows doesn't use TSC > frequency for its guests even when the feature is advertised and KVM > filters SECONDARY_EXEC_TSC_SCALING out when creating L2 controls from > L1's. This leads to L2 running with the default frequency (matching > host's) while L1 is running with an altered one. > > Keep SECONDARY_EXEC_TSC_SCALING in secondary exec controls for L2 when > it was set for L1. TSC_MULTIPLIER is already correctly computed and > written by prepare_vmcs02(). > > Signed-off-by: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx> > --- > arch/x86/kvm/vmx/nested.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/arch/x86/kvm/vmx/nested.c b/arch/x86/kvm/vmx/nested.c > index 778f82015f03..bfa366938c49 100644 > --- a/arch/x86/kvm/vmx/nested.c > +++ b/arch/x86/kvm/vmx/nested.c > @@ -2284,7 +2284,6 @@ static void prepare_vmcs02_early(struct vcpu_vmx *vmx, struct loaded_vmcs *vmcs0 > SECONDARY_EXEC_VIRTUAL_INTR_DELIVERY | > SECONDARY_EXEC_APIC_REGISTER_VIRT | > SECONDARY_EXEC_ENABLE_VMFUNC | > - SECONDARY_EXEC_TSC_SCALING | > SECONDARY_EXEC_DESC); > > if (nested_cpu_has(vmcs12, >