I havent seen such an error before version 7.0. My hosts information as follows and when I launch a vm, I get the mentioned error message.
incus start testvm
Error:
Failed to run: forklimits limit=memlock:unlimited:unlimited fd=3 fd=4 – /opt/incus/bin/qemu-system-aarch64 -S -name testvm -uuid 02f385ee-a666-4a96-b576-30a56af9a8b7 -daemonize -cpu host -nographic -serial chardev:console -nodefaults -no-user-config -sandbox on,obsolete=deny,elevateprivileges=allow,spawn=allow,resourcecontrol=deny -readconfig /run/incus/testvm/qemu.conf -pidfile /run/incus/testvm/qemu.pid -D /var/log/incus/testvm/qemu.log -spice unix=on,disable-ticketing=on,addr=/run/incus/testvm/qemu.spice -smbios type=2,manufacturer=LinuxContainers,product=Incus -run-with user=incus: : exit status 1
Try `incus info --show-log testvm` for more info
Hello, the AI suggest that, changing the raw.qemu parameter as -cpu max can solve the case. But in the raw qemu parameter in incus there also -cpu host added. How can I omit the -cpu host or any suggestion for that?
You mention you’re running on Armbian, which indicates you’re probably on some arm64 board. Does it have two or more different types of CPUs? You may want to look at CPU pinning to limit what CPUs Incus uses, since if QEMU is attempting to launch the VM on an unexpected CPU type that could explain the error you’re seeing.
I have opened a case for that on the Qemu GitLab, technically I do not really understand the whole idea but here is the reply.
Peter Maydell commented:
I’m guessing from the host kernel version that this is on a rockchip SoC of some kind. What exact model is it, and is it a “big.LITTLE” SoC (i.e. two different kinds of host CPU)?
The error message is about the cache config ID registers, where the values QEMU wants to write back to the kernel don’t match the values the kernel has for the CPU. One common reason for this is that the host is a big.LITTLE system and the VM has not been set up to restrict it to only one kind of host CPU. KVM for Arm does not support a VM setup where the vCPUs can move between big and little cores: you have to manually ensure (e.g. with taskset) that you have made sure that the VM will only execute on e.g. the big cores. Otherwise you’ll get odd failures like this one. (Unfortunately there isn’t really an easy way to spot and make a clear error message for this kind of problem.)
CPU information:
root@tnode1:/var/lib/incus# cpu-info Packages: 0: Unknown Microarchitectures: 4x Cortex-A76 4x Cortex-A55 Cores: 0: 1 processor (0), ARM Cortex-A76 1: 1 processor (1), ARM Cortex-A76 2: 1 processor (2), ARM Cortex-A76 3: 1 processor (3), ARM Cortex-A76 4: 1 processor (4), ARM Cortex-A55 5: 1 processor (5), ARM Cortex-A55 6: 1 processor (6), ARM Cortex-A55 7: 1 processor (7), ARM Cortex-A55 Clusters: 0: 2 processors (0-1), 0: 2 cores (0-1), ARM Cortex-A76 1: 2 processors (2-3), 1: 2 cores (2-3), ARM Cortex-A76 2: 4 processors (4-7), 2: 4 cores (4-7), ARM Cortex-A55 Logical processors (System ID): 0 (6) 1 (7) 2 (4) 3 (5) 4 (0) 5 (1) 6 (2) 7 (3)