|
From: | Marcin Gibuła |
Subject: | Re: [Qemu-devel] latest rc: virtio-blk hangs forever after migration |
Date: | Mon, 04 Aug 2014 18:30:09 +0200 |
User-agent: | Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 |
W dniu 2014-07-31 13:27, Marcin Gibuła pisze:
Can you dump *env before and after the call to kvm_arch_get_registers?Yes, but it seems they are equal - I used memcmp() to compare them. Is there any other side effect that cpu_synchronize_all_states() may have?I think I found it. The reason for hang is, because when second call to kvm_arch_get_registers() is skipped, it also skips kvm_get_apic() which updates cpu->apic_state.
Paolo,is this analysis deep enough for you? I don't know if that can be fixed with existing api as cpu_synchronize_all_states() is all or nothing kind of stuff.
Kvmclock needs it only to read current cpu registers, so syncing everything is not really necessary. Perhaps exporting one of kvm_arch_get_* would be enough. And it wouldn't mess with lazy get/put.
On the other hand, if in future any other driver adds cpu_synchronize_all_states() in its change state callback it could result in same error so perhaps more generic approach is needed.
-- mg
[Prev in Thread] | Current Thread | [Next in Thread] |