On 2011-02-23 15:38, Ryousei Takano wrote: > This reverts commit c65827770b5e7282b5fb9da29c1de85ed08e816e Reasoning would belong here, not below the separator. > > Signed-off-by: Ryousei Takano <takano-ryousei@xxxxxxxxxx> > --- > I am trying to run OpenMP (i.e., multi-threaded) programs using Intel > Math Kernel Library (MKL) on a guest OS. In the qemu-kvm-0.12.5, > my program works fine. In the qemu-kvm-0.13.0, however, it does not. What about 0.14? > The Linux kernel is 2.6.32.28. The outputs of 'ps -L' are shown as follows: > > qemu-kvm-0.12.5: > PID LWP TTY TIME CMD > 2731 2731 pts/0 00:00:00 bash > 2799 2799 pts/0 00:00:19 a.out > 2799 2803 pts/0 00:00:00 a.out > 2799 2804 pts/0 00:00:04 a.out <- > 2799 2805 pts/0 00:00:03 a.out <- these threads are working properly. > 2799 2806 pts/0 00:00:04 a.out <- > 2807 2807 pts/0 00:00:00 ps > > qemu-0.13.0: > PID LWP TTY TIME CMD > 2725 2725 pts/0 00:00:00 bash > 2748 2748 pts/0 00:00:19 a.out > 2748 2752 pts/0 00:00:00 a.out > 2748 2753 pts/0 00:00:00 a.out <- > 2748 2754 pts/0 00:00:00 a.out <- these threads are blocked by > pthread_cond_wait(3). > 2748 2755 pts/0 00:00:00 a.out <- > 2756 2756 pts/0 00:00:00 ps > > This problem seems to be introduced by the commit > c65827770b5e7282b5fb9da29c1de85ed08e816e. > The attached revert patch solves it. But I do not understand what is > happened;-) > Any comments and suggestions will be appreciated. > > Regards, > Ryousei > > hw/pc.c | 6 ++++++ > target-i386/helper.c | 2 -- > 2 files changed, 6 insertions(+), 2 deletions(-) > > diff --git a/hw/pc.c b/hw/pc.c > index ec97181..577abe7 100644 > --- a/hw/pc.c > +++ b/hw/pc.c > @@ -937,6 +937,12 @@ CPUState *pc_new_cpu(const char *cpu_model) > } > qemu_register_reset(pc_cpu_reset, env); > pc_cpu_reset(env); > + > + /* kvm needs this to run after the apic is initialized. Otherwise, > + * it can access invalid state and crash. > + */ > + qemu_init_vcpu(env); > + > return env; > } > > diff --git a/target-i386/helper.c b/target-i386/helper.c > index 86202e6..69cda5e 100644 > --- a/target-i386/helper.c > +++ b/target-i386/helper.c > @@ -1224,8 +1224,6 @@ CPUX86State *cpu_x86_init(const char *cpu_model) > } > mce_init(env); > > - qemu_init_vcpu(env); > - > return env; > } > I don't believe yet that the patch is the reason, specifically as it targets the setup phase (except for CPU hotplug, but that's broken for ages), not the operational phase of the VM. What's your qemu-kvm command line? Also, please attach gdb to the stuck VM and print the backtraces of all threads ("thread apply all bt"). Thanks, Jan -- Siemens AG, Corporate Technology, CT T DE IT 1 Corporate Competence Center Embedded Linux -- 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