Am 28.07.2013 08:13, schrieb Igor Mammedov: > On Sat, 27 Jul 2013 04:01:50 +0200 > Andreas Färber <afaer...@suse.de> wrote: > >> Commit c643bed99 moved qemu_init_vcpu() calls to common CPUState code. >> This causes x86 cpu-add to fail with "KVM: setting VAPIC address failed". >> >> The reason for the failure is that CPUClass::kvm_fd is not yet >> initialized in the following call graph: >> ->x86_cpu_realizefn >> ->x86_cpu_apic_realize >> ->qdev_init >> ->device_set_realized >> ->device_reset (hotplugged == 1) >> ->apic_reset_common >> ->vapic_base_update >> ->kvm_apic_vapic_base_update >> This causes attempted KVM vCPU ioctls to fail. >> >> By contrast, in the non-hotplug case the APIC is reset much later, when >> the vCPU is already initialized. >> >> As a quick and safe solution, move the qemu_init_vcpu() call back into >> the targets' realize functions. >> >> Reported-by: Chen Fan <chen.fan.f...@cn.fujitsu.com> >> Signed-off-by: Andreas Färber <afaer...@suse.de> > > ACK for target-i386
Thanks, applied to qom-cpu: https://github.com/afaerber/qemu-cpu/commits/qom-cpu I used the diff of the offending commit to determine placement of qemu_init_vcpu() and only avoided duplicate CPU() casts, so other targets should be fine as well. Andreas -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg