On Fri, Aug 1, 2014 at 9:48 PM, Ming Lei <ming....@canonical.com> wrote: > On Fri, Aug 1, 2014 at 9:13 PM, Stefan Hajnoczi <stefa...@redhat.com> wrote: >> On Fri, Aug 01, 2014 at 10:54:02AM +0800, Ming Lei wrote: >>> On Fri, Aug 1, 2014 at 12:30 AM, Paolo Bonzini <pbonz...@redhat.com> wrote: >>> > Il 31/07/2014 18:13, Ming Lei ha scritto: >>> >> Follows 'perf report' result on cycles event for with/without bypass >>> >> coroutine: >>> >> >>> >> http://pastebin.com/ae0vnQ6V >>> >> >>> >> From the profiling result, looks bdrv_co_do_preadv() is a bit slow >>> >> without bypass coroutine. >>> > >>> > Yeah, I can count at least 3.3% time spent here: >>> > >>> > 0.87% bdrv_co_do_preadv >>> > 0.79% bdrv_aligned_preadv >>> > 0.71% qemu_coroutine_switch >>> > 0.52% tracked_request_begin >>> > 0.45% coroutine_swap >>> > >>> > Another ~3% wasted in malloc, etc. >>> >>> That should be related with coroutine and the BH in bdrv_co_do_rw(). >>> In this post I didn't apply Stephan's coroutine resize patch which might >>> decrease usage of malloc() for coroutine. >> >> Please rerun with "[PATCH v3 0/2] coroutine: dynamically scale pool >> size". > > No problem, will do that. Actually in my last post with rfc, this patchset > was against your coroutine resize patches. > > I will provide the profile data tomorrow.
Please see below link for without bypass coroutine, and with your coroutine resize patches(V3): http://pastebin.com/10y00sir BTW, if anyone likes to play this stuff, these patches can be pulled from below tree easily: git://kernel.ubuntu.com/ming/qemu.git branch: - v2.1.0-mq-co-resize: these 15 patches against 2.1.0-rc5 plus Stefan's coroutine resize patches(V3) - v2.1.0-mq: only these 15 patches against 2.1.0-rc5 Thanks,