Re: [PATCH] fix info cpus halted state display
On 05/20/2010 01:16 PM, Gleb Natapov wrote: On Thu, May 13, 2010 at 04:17:14PM +0300, Gleb Natapov wrote: When in-kernel irqchip is used env-halted is never used for anything except info cpus command. Halted state is synced in kvm_arch_save_mpstate() and showed by do_info_cpus() but otherwise never looked at. Zeroing it here breaks info cpus since before do_info_cpus() outputs env-halted in io thread it is zeroed here when vcpu thread reenters kernel. Avi, what about this patch? Sorry, missed. Applied now. -- error compiling committee.c: too many arguments to function -- To unsubscribe from this list: send the line unsubscribe kvm in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] fix info cpus halted state display
On Thu, May 13, 2010 at 04:17:14PM +0300, Gleb Natapov wrote: When in-kernel irqchip is used env-halted is never used for anything except info cpus command. Halted state is synced in kvm_arch_save_mpstate() and showed by do_info_cpus() but otherwise never looked at. Zeroing it here breaks info cpus since before do_info_cpus() outputs env-halted in io thread it is zeroed here when vcpu thread reenters kernel. Avi, what about this patch? Signed-off-by: Gleb Natapov g...@redhat.com diff --git a/qemu-kvm-x86.c b/qemu-kvm-x86.c index 61d9331..0ec2881 100644 --- a/qemu-kvm-x86.c +++ b/qemu-kvm-x86.c @@ -922,10 +922,6 @@ void kvm_arch_load_regs(CPUState *env, int level) if (env-kvm_vcpu_update_vapic) kvm_tpr_enable_vapic(env); } -if (kvm_irqchip_in_kernel()) { -/* Avoid deadlock: no user space IRQ will ever clear it. */ -env-halted = 0; -} kvm_put_vcpu_events(env, level); kvm_put_debugregs(env); -- Gleb. -- To unsubscribe from this list: send the line unsubscribe kvm in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html -- Gleb. -- To unsubscribe from this list: send the line unsubscribe kvm in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] fix info cpus halted state display
On Thu, May 13, 2010 at 03:57:05PM +0200, Jan Kiszka wrote: Gleb Natapov wrote: When in-kernel irqchip is used env-halted is never used for anything except info cpus command. In fact, it's used in a few more places, namely cpu_dump_state and the gdbstub. Both of those places use env-halted the same way info cpus does: print out cpu state. And the both call for cpu_synchronize_state() before using env-halted. Halted state is synced in kvm_arch_save_mpstate() and showed by do_info_cpus() but otherwise never looked at. Zeroing it here breaks info cpus since before do_info_cpus() outputs env-halted in io thread it is zeroed here when vcpu thread reenters kernel. Looks good for current qemu-kvm. Execution of kvm_cpu_exec once depended on env-halted, even for in-kernel irqchip, right? Never in qemu-kvm AFAIR. May be at some point during merge between upstream qemu and qemu-kvm such bug was introduced, Anyway, there are not such traces left here. We will just need to look at it again when pushing in-kernel irqchips upstream as its kvm loop looks different. Jan Signed-off-by: Gleb Natapov g...@redhat.com diff --git a/qemu-kvm-x86.c b/qemu-kvm-x86.c index 61d9331..0ec2881 100644 --- a/qemu-kvm-x86.c +++ b/qemu-kvm-x86.c @@ -922,10 +922,6 @@ void kvm_arch_load_regs(CPUState *env, int level) if (env-kvm_vcpu_update_vapic) kvm_tpr_enable_vapic(env); } -if (kvm_irqchip_in_kernel()) { -/* Avoid deadlock: no user space IRQ will ever clear it. */ -env-halted = 0; -} kvm_put_vcpu_events(env, level); kvm_put_debugregs(env); -- Gleb. -- Gleb. -- To unsubscribe from this list: send the line unsubscribe kvm in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html