[rng] Work around broken RTC periodic interrupts in Hyper-V

Some versions of Hyper-V (observed in some Microsoft Azure virtual
machines as noted in commit 74222cd ("[rng] Check for functioning RTC
interrupt"), and now in Windows Server 2022) fail to properly emulate
the RTC periodic interrupt.  The typical symptom is that only a single
interrupt will be generated: subsequent interrupts will appear to be
asserted by the virtual RTC but will be ignored by the virtual PIC.

Experiments show that this apparent hypervisor bug can be worked
around by disabling and re-enabling the periodic interrupt within the
interrupt handler.

Apply this workaround only if required, since doing so will
substantially increase the overhead of each RTC interrupt.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
1 file changed
tree: 19bccc496043c07835a38b1a2b4772aecc8e0efd
  1. .github/
  2. contrib/
  3. src/
  4. COPYING
  5. COPYING.GPLv2
  6. COPYING.UBDL
  7. README