[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 0/2] coroutine: dynamically scale pool size
From: |
Ming Lei |
Subject: |
Re: [Qemu-devel] [PATCH 0/2] coroutine: dynamically scale pool size |
Date: |
Fri, 4 Jul 2014 13:10:39 +0800 |
On Thu, Jul 3, 2014 at 9:51 PM, Stefan Hajnoczi <address@hidden> wrote:
> The coroutine pool reuses exited coroutines to make qemu_coroutine_create()
> cheap. The size of the pool is capped to prevent it from hogging memory after
> a period of high coroutine activity. Previously the max size was hardcoded to
> 64 but this doesn't scale with guest size.
>
> A guest with lots of disks can do more parallel I/O and therefore requires a
> larger coroutine pool size. This series tries to solve the problem by scaling
> pool size according to the number of drives.
>
> Ming: Please let me know if this eliminates the rt_sigprocmask system calls
> you
> are seeing. It should solve part of the performance regression you have seen
> in qemu.git/master virtio-blk dataplane.
With both the two coroutine patches and the block plug&unplug patches,
performance of qemu.git/master virtio-blk dataplane can recover to level of
QEMU 2.0.
>
> Stefan Hajnoczi (2):
> coroutine: make pool size dynamic
> block: bump coroutine pool size for drives
>
> block.c | 4 ++++
> include/block/coroutine.h | 11 +++++++++++
> qemu-coroutine.c | 25 +++++++++++++++++++------
> 3 files changed, 34 insertions(+), 6 deletions(-)
>
> --
> 1.9.3
>
>