|
From: | Paolo Bonzini |
Subject: | Re: [Qemu-devel] [regression] dataplane: throughout -40% by commit 580b6b2aa2 |
Date: | Tue, 01 Jul 2014 18:49:30 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 |
Il 01/07/2014 16:49, Ming Lei ha scritto:
Let me provide some data when running randread(bs 4k, libaio) from VM for 10sec: 1), qemu.git/master - write(): 731K - rt_sigprocmask(): 417K - read(): 21K - ppoll(): 10K - io_submit(): 5K - io_getevents(): 4K 2), qemu 2.0 - write(): 9K - read(): 28K - ppoll(): 16K - io_submit(): 12K - io_getevents(): 10K> The sigprocmask can probably be optimized away since the thread's > signal mask remains unchanged most of the time. > > I'm not sure what is causing the write().I am investigating it...
I would guess sigprocmask is getcontext (from qemu_coroutine_new) and write is aio_notify (from qemu_bh_schedule).
Both can be eliminated by introducing a fast path in bdrv_aio_{read,write}v, that bypasses coroutines in the common case of no I/O throttling, no copy-on-write, etc.
Paolo
[Prev in Thread] | Current Thread | [Next in Thread] |