kimchi-project / kimchi

An HTML5 management interface for KVM guests
https://github.com/kimchi-project/kimchi/releases/latest
Other
3.09k stars 365 forks source link

Kimchi not working on arm64? "KVM is not supported for this guest CPU type" #1179

Closed ScottGarman closed 4 years ago

ScottGarman commented 6 years ago

Hello, I'm trying to run Kimchi 2.5.0 on an Ubuntu 16.04.3 arm64 server. I am using the wok and kimchi deb packages from https://github.com/kimchi-project/kimchi/releases/tag/2.5.0.

Libvirt is running fine and I can manage VMs via virsh using qemu+ssh uris without problems. But after I install the wok & kimchi packages and log into wok, it doesn't show me the Kimchi interface. If I disable and then re-enable the kimchi wok plugin, I see the following error message in /var/log/wok/wok-error.log:

Failed to import plugin plugins.kimchi.Kimchi, error: internal error: process exited while connecting to monitor: KVM is not supported for this guest CPU type kvm_init_vcpu failed: Invalid argument

kvm-ok returns: INFO: /dev/kvm exists KVM acceleration can be used

I will note however that lsmod doesn't show any kvm kernel modules are loaded - I'm assuming Ubuntu builds KVM into their kernel for arm64.

I've grepped through the kimchi sources for these KVM error messages and haven't come up with anything - please let me know if I can provide more relevant debug info. Thanks for any help you can provide.

rhenwood-arm commented 6 years ago

I have observed an issue on AArch64 on F25 as well. However, in my case, my F25 is a virtual host and KVM is not available. Are you testing on bare-metal?

ScottGarman commented 6 years ago

@rhenwood-arm yes, I'm trying to run kimchi directly on the arm64 bare metal which has KVM support.

rhenwood-arm commented 6 years ago

Out of interest: Version 1.5.0 is included in Ubuntu 16.04.3 for AArch64. Have you tried that?

ScottGarman commented 6 years ago

@rhenwood-arm I did start with trying to install the Ubuntu-provided version of Kimchi. I can't remember the exact trouble I ran into, but when I searched for the error online I found a post advising against trying to use the distro package, and saw that it was quite out of date with the latest upstream.

jbrnd commented 4 years ago

It looks like QEMU by default picks some CPU model that's not compatible with kvm on aarch64, so Kimchi needs to override this choice. For instance, passing "-cpu host" to QEMU works, but I'm not yet familiar enough with the Kimchi code to know where this choice would go.

jbrnd commented 4 years ago

Adding

<cpu mode='host-passthrough'>
  <model fallback='forbid'/>
  <topology sockets='1' cores='1' threads='1'/>
</cpu>

to SIMPLE_VM_XML in kvmusertests.py makes the virtualization tab appear in the web interface. But this is not the proper fix for at least three reasons:

jbrnd commented 4 years ago

Openstack encountered the same problem. These links may provide inspiration for a better Kimchi fix:

https://bugs.launchpad.net/nova/+bug/1741230 https://opendev.org/openstack/charm-nova-compute/commit/b5d9b18c0afd06b721d78bced96b4c6c19f77834

alinefm commented 4 years ago

I am working on it

alinefm commented 4 years ago

@jbrnd could you confirm if only adding mode='host-passthrough' to <cpu> will fix this problem? I don' t have any aarch64 system to validate it.

jbrnd commented 4 years ago

Yes, adding only mode='host-passthrough' fixes the problem. Thank you!