KVM / QEMU: Aceleração de hardware não está funcionando

1

Eu estava tentando instalar minha primeira máquina virtual com KVM e QEMU, mas parece usar a aceleração de hardware como pretendido. Cheguei a essa conclusão primeiro porque é terrivelmente lento e segundo por causa da saída de

$lsmod | grep kvm
kvm_intel        180224 0
kvm              708698 1 kvm_intel
irqbypass         13284 1 kvm

quando a máquina está rodando, o valor de kvm_intel deve ser 1, correto?

Minha máquina host é um Arch Linux da Dell XPS 13 (recentemente atualizado, é claro). O sistema convidado é o Arch também. Ambos os 64 bits.

Eu verifiquei tudo o que encontrei no link , concluindo que meu hardware oferece suporte à virtualização:

$'LC_ALL=C lscpu | grep Virtualization
Virtualization:      VT-x

e que os módulos do kernel estão incluídos e carregados:

$zgrep CONFIG_KVM /proc/config.gz
CONFIG_KVM_GUEST=y               
# CONFIG_KVM_DEBUG_FS is not set
CONFIG_KVM_MMIO=y
CONFIG_KVM_ASYNC_PF=y
CONFIG_KVM_VFIO=y
CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
CONFIG_KVM_COMPAT=y
CONFIG_KVM=m
CONFIG_KVM_INTEL=m
CONFIG_KVM_AMD=m
CONFIG_KVM_AMD_SEV=y
CONFIG_KVM_MMU_AUDIT=y

O mesmo para o virtio

$zgrep VIRTIO /proc/config.gz
CONFIG_BLK_MQ_VIRTIO=y
CONFIG_VIRTIO_VSOCKETS=m
CONFIG_VIRTIO_VSOCKETS_COMMON=m
CONFIG_NET_9P_VIRTIO=m
CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
CONFIG_SCSI_VIRTIO=m
CONFIG_VIRTIO_NET=m
CONFIG_CAIF_VIRTIO=m
CONFIG_VIRTIO_CONSOLE=m
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_DRM_VIRTIO_GPU=m
CONFIG_VIRTIO=m
CONFIG_VIRTIO_MENU=y
CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_PCI_LEGACY=y
CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_INPUT=m
CONFIG_VIRTIO_MMIO=m
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
CONFIG_RPMSG_VIRTIO=m
CONFIG_CRYPTO_DEV_VIRTIO=m

verifique se carregado (veja o topo para kvm):

$lsmod | grep virtio
virtio        16384  0

Novamente, virtio parece não ser usado. Estou interpretando isso corretamente?

Também verifiquei se o suporte à virtualização está ativado no BIOS (versão A15 recente fornecida pela Dell em fevereiro deste ano), o que era o tempo todo.

O usuário está no grupo kvm (o que não ocorreu ao instalar a máquina virtual, poderia ser esse o problema?)

A página que encontrei link me encorajou na ideia de que há algo errado, mas nenhum dos problemas propostos se aplica. Eu também não recebo uma mensagem de erro do QEMU e não vejo nada relacionado ao kvm ou virtio no dmesg.

A rede está funcionando bem, a resolução é semelhante a VGA, mas ainda não investiguei sobre isso. Então, isso poderia ser uma coisa de configuração.

O arquivo de disco é bruto e inicio a VM com a opção -m 1024. O modo de inicialização é legado (não consegui descobrir como fazer o kvm boot no modo uefi).

Alguém tem uma ideia do meu problema? Existe outra maneira de verificar se a aceleração de hardware está realmente funcionando? Mas é realmente extremamente lento. Começando, assim como em execução. Meu Windows no Virtualbox é executado muito mais rápido. Pode haver um problema diferente?

Alguém tem uma ideia do meu problema? Eu postei todas as informações que achei que poderiam ser interessantes. Você precisa de informações adicionais?

Agradecemos antecipadamente

    
por Bloch 25.04.2018 / 10:39

1 resposta

0

Eu realmente pesquisei na Web há algum tempo pela resposta, mas não encontrei uma solução. Como é frequente: uma vez perguntado, você rapidamente tem a solução:

Ao iniciar a máquina, tive que informar explicitamente ao QEMU para usar o KVM adicionando a opção

-machine type=pc,accel=kvm

agora recebo uma VM muito mais rápida e

$lsmod | grep kvm            
kvm_intel             180224  3
kvm                   708608  1 kvm_intel
irqbypass              16384  1 kvm

No entanto virtio ainda é 0

Ainda estou confuso porque isso é necessário, porque tudo o que eu li até agora implica ou diz explicitamente que o qemu tenta usar o kvm por padrão (e lança um erro quando falha). Então, se alguém sabe por que isso não é o caso para mim, eu ainda ficaria grato.

    
por 25.04.2018 / 10:53