I have reviewed your updated configuration. Indeed, <acpi/> and <apic/> are properly configured.
Regarding the Hyper-V Enlightenments and the reset state parameter you mentioned, they need to be placed inside the <features> tag.
For Windows VMs running on KVM, enabling Hyper-V enlightenments is crucial. It allows KVM to emulate a Hyper-V environment. When Windows detects this, it uses specially optimized low-level interfaces, which significantly improves performance and reduces the chances of system freezes or Blue Screens of Death (BSOD).
Here are the specific modifications I recommend:
- Add Hyper-V Enlightenment Parameters
Please modify your <features> section to look like this (this includes the reset parameter you mentioned):
<features>
- Add Hyper-V Clock: Since you are enabling the Hyper-V module, it is recommended to add
hypervclockinside your<clock>tag. This helps resolve time drift and high CPU usage issues within the Windows VM:
<clock offset='utc'>
- You mentioned trying to modify the
memballoon, which is an excellent troubleshooting approach. Windows compatibility with the Virtio memory balloon driver can sometimes trigger instability or BSODs due to its memory reclamation mechanism (especially when the host system experiences memory pressure).
To rule out this interference, you can completely disable it for now. At the bottom of the <devices> tag, change the original:
<memballoon model='virtio'>
to:
<memballoon model='none'/>
I suggest making these three modifications first, then use virsh define to redefine the VM and start it up for testing.