Algum tempo atrás, notou-se que o Win10 1803 WM daria alto uso da CPU no host, por exemplo, 25%, mesmo que o uso da CPU do cliente fosse 0%. Foi resolvido com essas configurações em seu arquivo XML virt:
<hyperv>
<relaxed state='on'/>
<vapic state='on'/>
<spinlocks state='on' retries='8191'/>
<synic state='on'/>
<stimer state='on'/>
</hyperv>
<clock offset='localtime'>
<timer name='rtc' tickpolicy='catchup'/>
<timer name='pit' tickpolicy='delay'/>
<timer name='hpet' present='no'/>
<timer name='hypervclock' present='yes'/>
</clock>
Mas o problema é novo de volta. Mudei do Debian stretch ( QEMU 2.8.1
/ Kernel 4.9
) para o Buster ( QEMU 3.1.0
/ Kernel 4.19
) e Windows 10 1809.
O problema pode estar relacionado ao fato de não poder mais usar <synic state='on'/>
no Buster o que eu poderia usar no Stretch no mesmo hardware.
Quando tento iniciar a VM, recebo este erro
error: internal error: process exited while connecting to monitor: Hyper-V SynIC (requested by 'hv-synic' cpu flag) requires Hyper-V VP_INDEX ('hv-vpindex')
2019-08-06T13:29:14.114943Z qemu-system-x86_64: kvm_init_vcpu failed: Function not implemented
Quando corro lscpu
, não tenho nenhuma hv*
bandeira. Mas, novamente, funcionou no Stretch na mesma CPU.
Pelo menos em
QEMU 3.1.0
/Kernel 4.19
parece que os tipos de máquina QEMU > pc-i440fx-3.0 não suportam synIC, que é necessário na compilação de convidados do Windows 10 >= 1803 para não ter problemas com alto uso da CPU do host.Testei os seguintes tipos de máquina:
pc-i440fx-2.8 (OK)
pc-i440fx-3.0 (OK)
pc-i440fx-3.1 (Falha)
pc-q35-3.1 (Falha)
O elemento XML no arquivo Virt XML:
ATUALIZAÇÃO:
Acabou sendo minhas configurações de XML que eram o problema!
O seguinte também fará com que seus novos tipos de máquina QEMU funcionem sem problemas sem alto uso da CPU do host:
Um grande obrigado a Vitaly Kuznetsov por ser tão paciente comigo e me fazer perceber o erro de configuração.