qemu-discuss
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-discuss] qemu hangs


From: Nerijus Baliūnas
Subject: Re: [Qemu-discuss] qemu hangs
Date: Tue, 16 Aug 2016 21:45:18 +0300
User-agent: Roundcube Webmail/1.2.1

2016-08-16 21:21, Nerijus Baliūnas rašė:
I've tried gdb without daemonize on a working PC and got the same
backtrace. So it seems it is daemonize code which has a problem.

Debugging the child revealed the problem:
# gdb /usr/bin/qemu-system-alpha
(gdb) set follow-fork-mode child
(gdb) r -S -no-user-config -nodefaults -nographic -M none -qmp unix:/var/lib/libvirt/qemu/capabilities.monitor.sock,server,nowait -pidfile /var/lib/libvirt/qemu/capabilities.pidfile -daemonize
[New Thread 0x7fffc9708700 (LWP 16179)]
[New process 16180]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
^C
Thread 2.1 "qemu-system-alp" received signal SIGINT, Interrupt.
[Switching to Thread 0x7ffff7eb9fc0 (LWP 16180)]
base::internal::SpinLockDelay (w=0x7fffdbf1f280 <tcmalloc::Static::central_cache_+104576>, value=2,
    loop=<optimized out>) at src/base/spinlock_linux-inl.h:88
88          errno = save_errno;
(gdb) bt
#0 0x00007fffdbce9e47 in base::internal::SpinLockDelay(int volatile*, int, int) (w=0x7fffdbf1f280 <tcmalloc::Static::central_cache_+104576>, value=2, loop=<optimized out>) at src/base/spinlock_linux-inl.h:88 #1 0x00007fffdbce9d64 in SpinLock::SlowLock() (this=0x7fffdbf1f280 <tcmalloc::Static::central_cache_+104576>)
    at src/base/spinlock.cc:119
#2 0x00007fffdbcdacba in tcmalloc::CentralFreeList::RemoveRange(void**, void**, int) (this=0x7fffdbf1f280 <tcmalloc::Static::central_cache_+104576>) at src/base/spinlock.h:71 #3 0x00007fffdbcdacba in tcmalloc::CentralFreeList::RemoveRange(void**, void**, int) (this=0x7fffdbf1f280 <tcmalloc::Static::central_cache_+104576>, address@hidden, address@hidden, N=2)
    at src/central_freelist.cc:248
#4 0x00007fffdbcddcda in tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long) (address@hidden, cl=<optimized out>, address@hidden) at src/thread_cache.cc:126 #5 0x00007fffdbcedf03 in tc_calloc(size_t, size_t) (cl=<optimized out>, size=<optimized out>, this=<optimized out>) at src/thread_cache.h:368 #6 0x00007fffdbcedf03 in tc_calloc(size_t, size_t) (size=<optimized out>, heap=<optimized out>)
    at src/tcmalloc.cc:1193
#7 0x00007fffdbcedf03 in tc_calloc(size_t, size_t) (size=<optimized out>) at src/tcmalloc.cc:1208 #8 0x00007fffdbcedf03 in tc_calloc(size_t, size_t) (size=<optimized out>) at src/tcmalloc.cc:1219 #9 0x00007fffdbcedf03 in tc_calloc(size_t, size_t) (elem_size=<optimized out>, n=<optimized out>)
    at src/tcmalloc.cc:1232
#10 0x00007fffdbcedf03 in tc_calloc(size_t, size_t) (n=<optimized out>, elem_size=<optimized out>)
    at src/tcmalloc.cc:1645
#11 0x00007fffd162778c in  () at /usr/lib64/nvidia-304xx/libGL.so.1
#12 0x00007fffcb4440cf in () at /usr/lib64/nvidia-304xx/libnvidia-glcore.so.304.131
#13 0x00007fffd160220d in  () at /usr/lib64/nvidia-304xx/libGL.so.1
#14 0x00007fffd160958f in  () at /usr/lib64/nvidia-304xx/libGL.so.1
#15 0x00007fffd16096c4 in  () at /usr/lib64/nvidia-304xx/libGL.so.1
#16 0x00007fffd1609e4f in  () at /usr/lib64/nvidia-304xx/libGL.so.1
#17 0x00007fffda8b9a0e in __libc_fork () at ../sysdeps/nptl/fork.c:211
#18 0x00005555557d6324 in os_daemonize () at /usr/src/debug/qemu-2.7.0-rc2/os-posix.c:216 #19 0x000055555573ac9e in main (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>)
    at /usr/src/debug/qemu-2.7.0-rc2/vl.c:3989

It is nvidia binary driver. Running LD_PRELOAD=/usr/lib64/libGL.so.1 /usr/bin/qemu-system-alpha -S...
works OK.

Is there something that can be done/workarounded in qemu or should I just
patch libvirtd systemd unit file to include LD_PRELOAD=/usr/lib64/libGL.so.1?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]