On Thu, 2020-06-25 at 20:41 +0200, Paolo Bonzini wrote: > On 25/06/20 16:26, Kevin Locke wrote: >> 1. Do I understand correctly that the CPU usage is due to counting >> RTC periodic timer ticks for replay when the guest is resumed? > > Yes. > >> 2. If so, would it be possible to calculate the number of ticks >> required from the time delta at resume, rather than polling each >> tick while paused? > > Note that high CPU usage while the guest is paused is a bug. Only high > CPU usage as soon as the guest resumes is the unavoidable part. Although enabling the hv_stimer Hyper-V enlightenment avoids the issue, I assume high CPU usage while the guest is paused when hv_stimer is not enabled is still a bug. It's not important for my current use cases, but if there is interest in fixing the issue for others, I was able to find a more minimal reproduction: Using the Windows 10 May 2020 English 64-bit ISO from https://www.microsoft.com/en-us/software-download/windows10ISO If I run qemu-system-x86_64 \ -no-user-config \ -machine pc-q35-5.0,accel=kvm \ -m 1024 \ -blockdev driver=file,node-name=win10iso,filename=Win10_2004_English_x64.iso \ -device ide-cd,drive=win10iso \ -no-hpet \ -rtc driftfix=slew then pause the VM after the "Windows Setup" window appears, qemu-system-x86_64 uses ~40% CPU indefinitely. Without -rtc driftfix=slew, ~10%. Without -no-hpet, ~1%. For reference, both of these options are added by virt-manager by default for Windows 10. If there's anything else I can do to help, let me know. Thanks again for all of the help tracking this down. Best, Kevin