qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH qom-cpu for-1.6] cpu: Partially revert "cpu: Cha


From: Andreas Färber
Subject: Re: [Qemu-devel] [PATCH qom-cpu for-1.6] cpu: Partially revert "cpu: Change qemu_init_vcpu() argument to CPUState"
Date: Sun, 28 Jul 2013 13:20:28 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130620 Thunderbird/17.0.7

Am 28.07.2013 08:13, schrieb Igor Mammedov:
> On Sat, 27 Jul 2013 04:01:50 +0200
> Andreas Färber <address@hidden> 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 <address@hidden>
>> Signed-off-by: Andreas Färber <address@hidden>
> 
> 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]