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