qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [RFC PATCH 00/40] Sneak peek of virtio and dataplane ch


From: Christian Borntraeger
Subject: Re: [Qemu-devel] [RFC PATCH 00/40] Sneak peek of virtio and dataplane changes for 2.6
Date: Wed, 16 Dec 2015 13:54:06 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0

On 12/09/2015 09:35 PM, Paolo Bonzini wrote:
> 
> 
> On 26/11/2015 11:39, Paolo Bonzini wrote:
>> I would really prefer to get rid of vring.c as soon as the infrastructure
>> makes it possible---even if it's faster. We know what makes virtio.c
>> slower, and it's simpler to fix virtio.c than to convert all the other
>> models to vring.c _plus_ make vring.c safe for migration.
> 
> I've now pushed some optimizations of exec.c to the same place (branch
> dataplane, git://github.com/bonzini/qemu.git).  Basically if the length
> of an address_space_read is constant, and the target ends up being RAM,
> the compiler can inline address_space_read in the caller and in
> particular eliminate the memcpy.

Just some quick remarks before I leave into vacation:

Performance seems to be better than the initial version. I have some
hangs from time to time when shutting down (also with your previous
version)

(gdb) thread apply all bt

Thread 10 (Thread 0x3ff95b7f910 (LWP 9700)):
#0  0x000003ff9707cf56 in syscall () from /lib64/libc.so.6
#1  0x0000000010201586 in futex_wait (val=<optimized out>, f=<optimized out>) 
at /home/cborntra/REPOS/qemu/include/qemu/futex.h:26
#2  qemu_event_wait (address@hidden <rcu_call_ready_event>) at 
/home/cborntra/REPOS/qemu/util/qemu-thread-posix.c:398
#3  0x0000000010214fe2 in call_rcu_thread (opaque=<optimized out>) at 
/home/cborntra/REPOS/qemu/util/rcu.c:254
#4  0x000003ff971884c6 in start_thread () from /lib64/libpthread.so.0
#5  0x000003ff97082ec2 in thread_start () from /lib64/libc.so.6

Thread 9 (Thread 0x3ff9537f910 (LWP 9701)):
#0  0x000003ff9718f5fa in __lll_lock_wait () from /lib64/libpthread.so.0
#1  0x000003ff9718a582 in pthread_mutex_lock () from /lib64/libpthread.so.0
#2  0x0000000010201062 in qemu_mutex_lock (mutex=<optimized out>) at 
/home/cborntra/REPOS/qemu/util/qemu-thread-posix.c:69
#3  0x0000000010184ffa in aio_context_acquire (ctx=<optimized out>) at 
/home/cborntra/REPOS/qemu/async.c:361
#4  0x0000000010185322 in thread_pool_completion_bh (opaque=0x3ff90000ca0) at 
/home/cborntra/REPOS/qemu/thread-pool.c:168
#5  0x0000000010184b0c in aio_bh_call (bh=<optimized out>) at 
/home/cborntra/REPOS/qemu/async.c:64
#6  aio_bh_poll (address@hidden) at /home/cborntra/REPOS/qemu/async.c:96
#7  0x0000000010191ec2 in aio_poll (ctx=0x480e00d0, address@hidden) at 
/home/cborntra/REPOS/qemu/aio-posix.c:464
#8  0x00000000100c4bfe in iothread_run (opaque=0x480dfc00) at 
/home/cborntra/REPOS/qemu/iothread.c:42
#9  0x000003ff971884c6 in start_thread () from /lib64/libpthread.so.0
#10 0x000003ff97082ec2 in thread_start () from /lib64/libc.so.6

Thread 8 (Thread 0x3ff94b7f910 (LWP 9702)):
#0  0x000003ff970766e6 in ppoll () from /lib64/libc.so.6
#1  0x00000000101908c0 in ppoll (__ss=0x0, __timeout=0x0, __nfds=<optimized 
out>, __fds=<optimized out>) at /usr/include/bits/poll2.h:77
#2  qemu_poll_ns (fds=<optimized out>, nfds=<optimized out>, address@hidden) at 
/home/cborntra/REPOS/qemu/qemu-timer.c:312
#3  0x0000000010191f44 in aio_poll (ctx=0x480e0890, address@hidden) at 
/home/cborntra/REPOS/qemu/aio-posix.c:447
#4  0x00000000100c4bfe in iothread_run (opaque=0x480e05c0) at 
/home/cborntra/REPOS/qemu/iothread.c:42
#5  0x000003ff971884c6 in start_thread () from /lib64/libpthread.so.0
#6  0x000003ff97082ec2 in thread_start () from /lib64/libc.so.6

Thread 7 (Thread 0x3ff8ffff910 (LWP 9703)):
#0  0x000003ff970766e6 in ppoll () from /lib64/libc.so.6
#1  0x00000000101908c0 in ppoll (__ss=0x0, __timeout=0x0, __nfds=<optimized 
out>, __fds=<optimized out>) at /usr/include/bits/poll2.h:77
#2  qemu_poll_ns (fds=<optimized out>, nfds=<optimized out>, address@hidden) at 
/home/cborntra/REPOS/qemu/qemu-timer.c:312
#3  0x0000000010191f44 in aio_poll (ctx=0x480e1800, address@hidden) at 
/home/cborntra/REPOS/qemu/aio-posix.c:447
#4  0x00000000100c4bfe in iothread_run (opaque=0x480e0d60) at 
/home/cborntra/REPOS/qemu/iothread.c:42
#5  0x000003ff971884c6 in start_thread () from /lib64/libpthread.so.0
#6  0x000003ff97082ec2 in thread_start () from /lib64/libc.so.6

Thread 6 (Thread 0x3ff8f7ff910 (LWP 9704)):
#0  0x000003ff970766e6 in ppoll () from /lib64/libc.so.6
#1  0x00000000101908c0 in ppoll (__ss=0x0, __timeout=0x0, __nfds=<optimized 
out>, __fds=<optimized out>) at /usr/include/bits/poll2.h:77
#2  qemu_poll_ns (fds=<optimized out>, nfds=<optimized out>, address@hidden) at 
/home/cborntra/REPOS/qemu/qemu-timer.c:312
#3  0x0000000010191f44 in aio_poll (ctx=0x480e1f60, address@hidden) at 
/home/cborntra/REPOS/qemu/aio-posix.c:447
#4  0x00000000100c4bfe in iothread_run (opaque=0x480e1cb0) at 
/home/cborntra/REPOS/qemu/iothread.c:42
#5  0x000003ff971884c6 in start_thread () from /lib64/libpthread.so.0
#6  0x000003ff97082ec2 in thread_start () from /lib64/libc.so.6

Thread 5 (Thread 0x3ff8e2f9910 (LWP 9707)):
#0  0x000003ff9718f61e in __lll_lock_wait () from /lib64/libpthread.so.0
#1  0x000003ff9719262e in __pthread_mutex_cond_lock () from 
/lib64/libpthread.so.0
#2  0x000003ff9718c5be in pthread_cond_wait@@GLIBC_2.3.2 () from 
/lib64/libpthread.so.0
#3  0x00000000102011da in qemu_cond_wait (cond=<optimized out>, address@hidden 
<qemu_global_mutex>) at /home/cborntra/REPOS/qemu/util/qemu-thread-posix.c:141
#4  0x0000000010044604 in qemu_kvm_wait_io_event (cpu=<optimized out>) at 
/home/cborntra/REPOS/qemu/cpus.c:1016
#5  qemu_kvm_cpu_thread_fn (arg=0x484ae660) at 
/home/cborntra/REPOS/qemu/cpus.c:1055
#6  0x000003ff971884c6 in start_thread () from /lib64/libpthread.so.0
---Type <return> to continue, or q <return> to quit---
#7  0x000003ff97082ec2 in thread_start () from /lib64/libc.so.6

Thread 4 (Thread 0x3ff8daf9910 (LWP 9708)):
#0  0x000003ff9718f61e in __lll_lock_wait () from /lib64/libpthread.so.0
#1  0x000003ff9719262e in __pthread_mutex_cond_lock () from 
/lib64/libpthread.so.0
#2  0x000003ff9718c5be in pthread_cond_wait@@GLIBC_2.3.2 () from 
/lib64/libpthread.so.0
#3  0x00000000102011da in qemu_cond_wait (cond=<optimized out>, address@hidden 
<qemu_global_mutex>) at /home/cborntra/REPOS/qemu/util/qemu-thread-posix.c:141
#4  0x0000000010044604 in qemu_kvm_wait_io_event (cpu=<optimized out>) at 
/home/cborntra/REPOS/qemu/cpus.c:1016
#5  qemu_kvm_cpu_thread_fn (arg=0x484c0900) at 
/home/cborntra/REPOS/qemu/cpus.c:1055
#6  0x000003ff971884c6 in start_thread () from /lib64/libpthread.so.0
#7  0x000003ff97082ec2 in thread_start () from /lib64/libc.so.6

Thread 3 (Thread 0x3ff8d2f9910 (LWP 9709)):
#0  0x000003ff9718f61e in __lll_lock_wait () from /lib64/libpthread.so.0
#1  0x000003ff9719262e in __pthread_mutex_cond_lock () from 
/lib64/libpthread.so.0
#2  0x000003ff9718c5be in pthread_cond_wait@@GLIBC_2.3.2 () from 
/lib64/libpthread.so.0
#3  0x00000000102011da in qemu_cond_wait (cond=<optimized out>, address@hidden 
<qemu_global_mutex>) at /home/cborntra/REPOS/qemu/util/qemu-thread-posix.c:141
#4  0x0000000010044604 in qemu_kvm_wait_io_event (cpu=<optimized out>) at 
/home/cborntra/REPOS/qemu/cpus.c:1016
#5  qemu_kvm_cpu_thread_fn (arg=0x484d2ba0) at 
/home/cborntra/REPOS/qemu/cpus.c:1055
#6  0x000003ff971884c6 in start_thread () from /lib64/libpthread.so.0
#7  0x000003ff97082ec2 in thread_start () from /lib64/libc.so.6

Thread 2 (Thread 0x3ff8ca7f910 (LWP 9710)):
#0  0x000003ff9718f61e in __lll_lock_wait () from /lib64/libpthread.so.0
#1  0x000003ff9719262e in __pthread_mutex_cond_lock () from 
/lib64/libpthread.so.0
#2  0x000003ff9718c5be in pthread_cond_wait@@GLIBC_2.3.2 () from 
/lib64/libpthread.so.0
#3  0x00000000102011da in qemu_cond_wait (cond=<optimized out>, address@hidden 
<qemu_global_mutex>) at /home/cborntra/REPOS/qemu/util/qemu-thread-posix.c:141
#4  0x0000000010044604 in qemu_kvm_wait_io_event (cpu=<optimized out>) at 
/home/cborntra/REPOS/qemu/cpus.c:1016
#5  qemu_kvm_cpu_thread_fn (arg=0x484e4e40) at 
/home/cborntra/REPOS/qemu/cpus.c:1055
#6  0x000003ff971884c6 in start_thread () from /lib64/libpthread.so.0
#7  0x000003ff97082ec2 in thread_start () from /lib64/libc.so.6

Thread 1 (Thread 0x3ff98bdcbb0 (LWP 9690)):
#0  0x000003ff970766e6 in ppoll () from /lib64/libc.so.6
#1  0x00000000101908c0 in ppoll (__ss=0x0, __timeout=0x0, __nfds=<optimized 
out>, __fds=<optimized out>) at /usr/include/bits/poll2.h:77
#2  qemu_poll_ns (fds=<optimized out>, nfds=<optimized out>, address@hidden) at 
/home/cborntra/REPOS/qemu/qemu-timer.c:312
#3  0x0000000010191f44 in aio_poll (address@hidden, address@hidden) at 
/home/cborntra/REPOS/qemu/aio-posix.c:447
#4  0x00000000101c8ff4 in bdrv_flush (address@hidden) at 
/home/cborntra/REPOS/qemu/block/io.c:2426
#5  0x000000001018bba6 in bdrv_close (address@hidden) at 
/home/cborntra/REPOS/qemu/block.c:1914
#6  0x000000001018c0f6 in bdrv_close_all () at 
/home/cborntra/REPOS/qemu/block.c:1974
#7  0x0000000010014102 in main (argc=<optimized out>, argv=<optimized out>, 
envp=<optimized out>) at /home/cborntra/REPOS/qemu/vl.c:4687
(gdb) 





reply via email to

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