Hi, I am looking into QEMU code in ARM recently and trying to add add_hot_cpu in QEMU for ARM, but it doesn't work when enabling KVM. It reports error:
"kvm_init_vcpu failed: Device or resourc busy." By debugging QEMU with gdb, it failed on ioctl. In kernel soruce code arch/arm/kvm/arm.c, vcpu is created by this following function, it will report -EBUSY if irqchip_in_kernel. struct kvm_vcpu *kvm_arch_vcpu_create(struct kvm *kvm, unsigned int id) { int err; struct kvm_vcpu *vcpu; if (irqchip_in_kernel(kvm) && vgic_initialized(kvm)) { err = -EBUSY; goto out; } .... } I set virt machine with kernel_irqchip = off, it can execute cpu-add interface correctly with qmp-shell commands. But VMs still can't work well with kernel_irqchip=off when executing "info cpus" in qemu monitor. My question is that: 1) Can we change this error status in kvm_arch_vcpu_create? 2) Is it that irqchip_kernel=off isn't supported with KVM enabled on ARM? -- Best Regards -Li