On Thu, Feb 04, 2010 at 04:41:44PM +0100, Jan Kiszka wrote: > Jan Kiszka wrote: > > Marcelo Tosatti wrote: > >> On Thu, Feb 04, 2010 at 01:33:50AM +0100, Jan Kiszka wrote: > >>> Marcelo Tosatti wrote: > >>>> On Wed, Feb 03, 2010 at 10:29:45PM +0100, Jan Kiszka wrote: > >>>>> So far we synchronized any dirty VCPU state back into the kernel before > >>>>> updating the guest debug state. This was a tribute to a deficit in x86 > >>>>> kernels before 2.6.33. But as this is an arch-dependent issue, it is > >>>>> better handle in the x86 part of KVM and remove the writeback point for > >>>>> generic code. > >>>> Jan, > >>>> > >>>> This patch breaks migration. > >>> Can you elaborate what you did? I can't reproduce, and I do not see any > >>> conceptual issue (given that guest debugging conflicts with migration > >>> anyway). > >> kvm-autotest fails (migration only, install is ok, both Linux and Win > >> guests). Not sure why, perhaps the unconditional KVM_SET_GUEST_DEBUG > >> corrupts state somehow? > >> > >> Tested with io thread enabled. > > > > That's this default-off thing, so... OK, confirmed, investigating. > > > > Heisenbug: It first also popped up (in form of a frozen migration > target) after removing this patch, but now it's totally unreproducible, > whatever patch I apply or revert from my series. Base is current master. > > I tend to think there is a hidden issue of iothread vs. migration, > unrelated to this patch. Probably many :) Do you have c5f32c99c6855d466737daf1cd262e7e92062f87 (from qemu-kvm.git uq/master) in? With kvm-autotest the failure is not sporadic (and the above commit applied): with KVM_SET_GUEST_DEBUG in arch_put_regs all migration tests fail, without, all of them succeed. So env->kvm_guest_debug has been zeroed by cpu_x86_init, which means the writeback via KVM_SET_GUEST_DEBUG does almost nothing. It does get_rflags and set_rflags in the kernel. Test box is off, but the synchronous writeback via qemu_system_reset in main, after machine and vcpu thread initialization, might be problematic. But it would be nice to understand this. Unrelated to this problem, won't put_vcpu_events, which is executed after KVM_SET_GUEST_DEBUG, overwrite any queued debug exceptions? -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html