Share via

Query regarding Windows on ARM64 ignoring TLFS "Relaxed Timing" (Bit 5) recommendation and subsequent Watchdog timeouts

liye 20 Reputation points
2026-03-17T06:44:21.79+00:00

Subject: Issue with Windows on ARM64 failing to honor TLFS "Relaxed Timing" (Bit 5) recommendation

Description:

Hello everyone, I am currently developing a virtualization solution based on the Hyper-V Top-Level Functional Specification (TLFS).

According to the TLFS, Bit 5 in 0x40000004 (Implementation Recommendations) suggests that the partition should use relaxed timing. It specifically states that the VM should disable any watchdog timeouts that rely on the timely delivery of external interrupts.

My Observations:

On x86/x64 platforms, Windows Guest OS correctly interprets this bit and adjusts or disables its internal watchdog mechanisms, preventing spurious crashes during host-side scheduling delays.

However, on ARM64, even when the hypervisor exposes this bit via the appropriate interface (e.g., virtual registers or HVC calls), the Windows Guest seems to ignore the recommendation. This leads to frequent Watchdog-related BSODs when the host experiences high load or scheduling latency.

Questions:

Does Windows on ARM64 fully support the "Relaxed Timing" recommendation defined in the TLFS?

Are there specific Enlightenments or configuration requirements unique to the ARM64 architecture needed to trigger this behavior?

For developers working on ARM64 virtualization, are there alternative mechanisms recommended by Microsoft to prevent watchdog timeouts caused by unavoidable host scheduling jitter?

Thank you for your time and assistance!

Windows for business | Windows Client for IT Pros | Storage high availability | Virtualization and Hyper-V
0 comments No comments

Answer accepted by question author
  1. Tan Vu 2,175 Reputation points Independent Advisor
    2026-03-17T07:43:08.7933333+00:00

    Hi liye,

    Windows on ARM64 does support the TLFS "Relaxed Timing" recommendation, but only if it is exposed exactly according to the ARM64 TLFS interface.

    A key difference from x86/x64 is that ARM64 does not use CPUID leaf 0x40000004 layout. Instead, the feature is exposed via HvRegisterFeaturesInfo (128-bit), and the "Relaxed Timing" flag is not at bit 5 of EAX like on x86. On ARM64 it is located in a different position (EBX bit 1 of the 128-bit feature register).

    In practice, this means:

    • If you reuse the x86 bit layout, Windows ARM64 will silently ignore it
    • The value must be returned via the proper hypervisor register interface (e.g., HvCallGetVpRegisters) and available early at boot

    So what you’re observing is usually not lack of support, but incorrect bit placement or exposure path.

    Regarding alternatives: Microsoft doesn’t define a separate mechanism beyond this flag. The expected approach is still to:

    • Expose the relaxed timing recommendation correctly
    • Minimize interrupt latency (such as rely on architectural timers instead of external interrupts where possible)

    If the bit is correctly exposed (including correct ARM64 bit position, register, and early boot visibility) and Windows still triggers watchdogs, then the likely causes are either incomplete Hv#1 interface exposure by the hypervisor, or a limitation/bug in the current Windows ARM64 implementation.

    If this was helpful, please click "Accept Answer". If you have any further questions, you can leave a comment. I hope this helps and wish you success in resolving your issue. Have a great day!

    TV


2 additional answers

Sort by: Most helpful
  1. Tan Vu 2,175 Reputation points Independent Advisor
    2026-03-17T15:21:06.73+00:00

    Hi liye,

    You are correct that in the TLFS documentation, the “Relaxed Timing” flag is defined as EAX bit 1 in HvRegisterFeaturesInfo. On ARM64, however, this register is returned as a 128-bit value via HvCallGetVpRegisters, where EAX/EBX/ECX/EDX are just logical 32-bit partitions of that value.

    In practice:

    EAX = bits 31:0

    EBX = bits 63:32

    ECX = bits 95:64

    EDX = bits 127:96

    So the "Relaxed Timing" flag is: bit 1 of EAX, i.e. bit 1 of the full 128-bit value

    If the bit is placed in a different field (for example EBX), Windows will ignore it.

    0 comments No comments

  2. Q&A Assist
    2026-03-17T06:44:43.0033333+00:00
    AI generated content. This question contains an answer created with AI from Q&A Assist. Learn more

    The TLFS defines the “relaxed timing” recommendation bit for both x64 and ARM64, but the provided material does not state any Windows‑on‑ARM64 behavior, requirements, or guarantees tied to that bit.

    From the context:

    • On x64, bit 5 in the Feature and Interface Discovery leaf is defined as:
      • “Recommend using relaxed timing for this partition. If used, the VM should disable any watchdog timeouts that rely on the timely delivery of external interrupts.”
    • On ARM64, the equivalent bit 1 is defined with the same semantics:
      • “Recommend using relaxed timing for this partition. If used, the VM should disable any watchdog timeouts that rely on the timely delivery of external interrupts.”

    The TLFS text only describes what the hypervisor exposes and what a guest should do for optimal behavior. It does not document:

    • Whether Windows guests on ARM64 currently implement this recommendation.
    • Any additional ARM64‑specific enlightenments, registry keys, or configuration needed to make Windows honor relaxed timing.
    • Any alternative, Microsoft‑recommended mechanism for suppressing watchdogs in Windows on ARM64 when the hypervisor sets this bit.

    The other ARM64‑specific fields in the feature discovery and timer sections (e.g., UseHypercallForMmioAccess, UseGpaPinningHypercall, HvRegisterTimeRefCount, HvRegisterReferenceTsc) describe interfaces and capabilities, but do not mention watchdog behavior or relaxed‑timing handling by Windows.

    Therefore, based only on the supplied material, the following can be stated:

    1. The TLFS defines a relaxed‑timing recommendation bit for ARM64 with the same intended semantics as on x64.
    2. The TLFS does not document any Windows‑on‑ARM64 implementation details or guarantees regarding that bit.
    3. No ARM64‑specific configuration or alternative mechanism for watchdog suppression in Windows guests is described in the provided context.

    For definitive answers about current Windows‑on‑ARM64 behavior and supported mitigations, this falls outside what is covered by the TLFS itself and would require product‑specific documentation or direct support channels, which are not included in the provided material.


    References:

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.