|
From: | Marcin Gibuła |
Subject: | Re: [Qemu-devel] latest rc: virtio-blk hangs forever after migration |
Date: | Wed, 30 Jul 2014 14:02:41 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 |
On 29.07.2014 18:58, Paolo Bonzini wrote:
Il 18/07/2014 10:48, Paolo Bonzini ha scritto:It is easy to find out if the "fix" is related to 1 or 2/3: just write if (cpu->kvm_vcpu_dirty) { printf ("do_kvm_cpu_synchronize_state_always: look at 2/3\n"); kvm_arch_get_registers(cpu); } else { printf ("do_kvm_cpu_synchronize_state_always: look at 1\n"); } To further refine between 2 and 3, I suppose you can set a breakpoint on cpu_synchronize_all_states and kvm_cpu_exec, and see which is called first after cpu_synchronize_all_states_always.Marcin, have you ever gotten round to doing this?
Source side of migration, without my ugly hack: called do_kvm_cpu_synchronize_state: vcpu not dirty, getting registers called do_kvm_cpu_synchronize_state: vcpu not dirty, getting registers called kvm_cpu_synchronize_state: vcpu dirty called kvm_cpu_synchronize_state: vcpu dirty shutting down without it: called do_kvm_cpu_synchronize_state_always called do_kvm_cpu_synchronize_state_always called do_kvm_cpu_synchronize_state: vcpu not dirty, getting registers called do_kvm_cpu_synchronize_state: vcpu not dirty, getting registers shutting downSo it's probably about 2 from your list ("the next call to do_kvm_cpu_synchronize_state will do kvm_arch_get_registers").
I've tapped into kvm_cpu_exec() to find out if it's kvm_arch_put_registers(), but nothing was logged during migration so it's probably not 3.
-- mg
[Prev in Thread] | Current Thread | [Next in Thread] |