[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 01/15] qemu coroutine: support bypass mode
From: |
Ming Lei |
Subject: |
Re: [Qemu-devel] [PATCH 01/15] qemu coroutine: support bypass mode |
Date: |
Fri, 1 Aug 2014 00:13:55 +0800 |
On Thu, Jul 31, 2014 at 5:15 PM, Paolo Bonzini <address@hidden> wrote:
> Il 31/07/2014 10:59, Ming Lei ha scritto:
>>> > No guesses please. Actually that's also my guess, but since you are
>>> > submitting the patch you must do better and show profiles where stack
>>> > switching disappears after the patches.
>> Follows the below hardware events reported by 'perf stat' when running
>> fio randread benchmark for 2min in VM(single vq, 2 jobs):
>>
>> sudo ~/bin/perf stat -e
>> L1-dcache-loads,L1-dcache-load-misses,cpu-cycles,instructions,branch-instructions,branch-misses,branch-loads,branch-load-misses,dTLB-loads,dTLB-load-misses
>> ./nqemu-start-mq 4 1
>>
>> 1), without bypassing coroutine via forcing to set 's->raw_format ' as
>> false, see patch 5/15
>>
>> - throughout: 95K
>> 232,564,905,115 instructions
>> 161.991075781 seconds time elapsed
>>
>>
>> 2), with bypassing coroutinue
>> - throughput: 115K
>> 255,526,629,881 instructions
>> 162.333465490 seconds time elapsed
>
> Ok, so you are saving 10% instructions per iop: before 232G / 95K =
> 2.45M instructions/iop, 255G / 115K = 2.22M instructions/iop.
>
> That's not small, and it's a good thing for CPU utilization even if you
> were not increasing iops. On top of this, can you provide the stack
> traces to see the difference in the profiles?
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.
Thanks,
- Re: [Qemu-devel] [PATCH 01/15] qemu coroutine: support bypass mode, (continued)
- Re: [Qemu-devel] [PATCH 01/15] qemu coroutine: support bypass mode, Paolo Bonzini, 2014/07/30
- Re: [Qemu-devel] [PATCH 01/15] qemu coroutine: support bypass mode, Ming Lei, 2014/07/30
- Re: [Qemu-devel] [PATCH 01/15] qemu coroutine: support bypass mode, Paolo Bonzini, 2014/07/30
- Re: [Qemu-devel] [PATCH 01/15] qemu coroutine: support bypass mode, Ming Lei, 2014/07/30
- Re: [Qemu-devel] [PATCH 01/15] qemu coroutine: support bypass mode, BenoƮt Canet, 2014/07/31
- Re: [Qemu-devel] [PATCH 01/15] qemu coroutine: support bypass mode, Ming Lei, 2014/07/31
- Re: [Qemu-devel] [PATCH 01/15] qemu coroutine: support bypass mode, Paolo Bonzini, 2014/07/31
- Re: [Qemu-devel] [PATCH 01/15] qemu coroutine: support bypass mode, Ming Lei, 2014/07/31
- Re: [Qemu-devel] [PATCH 01/15] qemu coroutine: support bypass mode, Paolo Bonzini, 2014/07/31
- Re: [Qemu-devel] [PATCH 01/15] qemu coroutine: support bypass mode, Ming Lei, 2014/07/31
- Re: [Qemu-devel] [PATCH 01/15] qemu coroutine: support bypass mode,
Ming Lei <=
- Re: [Qemu-devel] [PATCH 01/15] qemu coroutine: support bypass mode, Paolo Bonzini, 2014/07/31
- Re: [Qemu-devel] [PATCH 01/15] qemu coroutine: support bypass mode, Ming Lei, 2014/07/31
[Qemu-devel] [PATCH 02/15] qemu aio: prepare for supporting selective bypass coroutine, Ming Lei, 2014/07/30
[Qemu-devel] [PATCH 03/15] block: support to bypass qemu coroutinue, Ming Lei, 2014/07/30
[Qemu-devel] [PATCH 04/15] Revert "raw-posix: drop raw_get_aio_fd() since it is no longer used", Ming Lei, 2014/07/30
[Qemu-devel] [PATCH 05/15] dataplane: enable selective bypassing coroutine, Ming Lei, 2014/07/30
[Qemu-devel] [PATCH 06/15] qemu/obj_pool.h: introduce object allocation pool, Ming Lei, 2014/07/30
[Qemu-devel] [PATCH 07/15] dataplane: use object pool to speed up allocation for virtio blk request, Ming Lei, 2014/07/30