From: Anthony Liguori <anthony@codemonkey.ws>
To: qemu-devel@nongnu.org
Cc: Laurent Vivier <Laurent.Vivier@bull.net>
Subject: Re: [Qemu-devel] [patch 0/5][v2] qcow2: improve I/O performance with cache=off
Date: Tue, 29 Jul 2008 14:15:11 -0500 [thread overview]
Message-ID: <488F6C3F.8050207@codemonkey.ws> (raw)
In-Reply-To: <20080729141352.573798859@bull.net>
Laurent Vivier wrote:
> These patches improve qcow2 performance when used with cache=off.
>
> They modify block-qcow2.c to read/write as many clusters as
> possible per bdrv_aio_[read|write]().
>
This patch series looks like a pretty good clean up of the code. The
perf improvement is a nice side effect too.
I'm a little concerned about how much code this touches though. How
much testing have you done of these changes? Have you tested all of the
corner cases (backing files, filling up a disk image, etc.)?
Regards,
Anthony Liguori
> Some benchmarks:
>
> * mkfs on 500 MB qcow2 disk
>
> mkfs WITHOUT WITH
>
> ide, cache=off,snapshot=off 41 s 5 s 8x faster
> ide, cache=off,snapshot=on 40 s 5 s 8x faster
> ide, cache=on, snapshot=off 3 s 3 s
> ide, cache=on, snapshot=on 4 s 3 s
>
> * tar jxvf linux-2.6.25.7.tar.bz2
>
> ide, cache=off,snapshot=off 847 s 379 s 2.2x faster
> ide, cache=off,snapshot=on 801 s 364 s 2.2x faster
> ide, cache=on, snapshot=off 238 s 236 s
> ide, cache=on, snapshot=on 236 s 237 s
>
> * dd if=/dev/zero of=file
>
> dd if=/dev/null WITHOUT WITH
>
> ide, cache=off,snapshot=off 333 kB/s 3.7 MB/s 11.3x faster
> ide, cache=off,snapshot=on 337 kB/s 3.6 MB/s 10.9x faster
> ide, cache=on, snapshot=off 9.06 MB/s 9.23 MB/s
> ide, cache=on, snapshot=on 8,89 MB/s 8.89 MB/s
>
> * dbench 1
>
> dbench WITHOUT WITH
>
> ide, cache=off,snapshot=off 20.8494 MB/sec 24.8521 MB/sec +19,2%
> ide, cache=off,snapshot=on 20.9349 MB/sec 24.2296 MB/sec +15,7%
> ide, cache=on, snapshot=off 23.6612 MB/sec 25.4724 MB/sec + 7,6%
> ide, cache=on, snapshot=on 24.1836 MB/sec 24.8169 MB/sec
>
> [PATCH 1/5] extract code from get_cluster_offset() into new functions
> seek_l2_table(), l2_load() and l2_allocate().
>
> [PATCH 2/5] divide get_cluster_offset() into get_cluster_offset() and
> alloc_cluster_offset().
>
> [PATCH 3/5] divide alloc_cluster_offset() into alloc_cluster_offset()
> and alloc_compressed_cluster_offset(). Factorize code
> to free clusters into free_used_clusters().
>
> [PATCH 4/5] modify get_cluster_offset(), alloc_cluster_offset() and
> free_used_clusters() to specify how many clusters we
> want.
>
> [PATCH 5/5] in free_used_clusters(), try to aggregate free clusters
> and freed clusters.
>
> Laurent
> --
>
>
>
next prev parent reply other threads:[~2008-07-29 19:15 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-29 14:13 [Qemu-devel] [patch 0/5][v2] qcow2: improve I/O performance with cache=off Laurent Vivier
2008-07-29 14:13 ` [Qemu-devel] [patch 1/5][v2] Extract code from get_cluster_offset() Laurent Vivier
2008-08-05 14:15 ` Kevin Wolf
2008-08-05 14:28 ` Laurent Vivier
2008-08-05 14:34 ` Kevin Wolf
2008-08-05 14:45 ` Laurent Vivier
2008-07-29 14:13 ` [Qemu-devel] [patch 2/5][v2] Divide get_cluster_offset() Laurent Vivier
2008-08-05 15:13 ` Kevin Wolf
2008-08-05 15:25 ` Laurent Vivier
2008-08-05 15:41 ` Kevin Wolf
2008-07-29 14:13 ` [Qemu-devel] [patch 3/5][v2] Extract compressing part from alloc_cluster_offset() Laurent Vivier
2008-08-06 14:20 ` Kevin Wolf
2008-08-06 14:41 ` Laurent Vivier
2008-08-06 14:56 ` Kevin Wolf
2008-08-06 15:03 ` Laurent Vivier
2008-07-29 14:13 ` [Qemu-devel] [patch 4/5][v2] Aggregate same type clusters Laurent Vivier
2008-08-11 12:10 ` Kevin Wolf
2008-08-11 12:39 ` Laurent Vivier
2008-07-29 14:13 ` [Qemu-devel] [patch 5/5][v2] Try to aggregate free clusters and freed clusters Laurent Vivier
2008-08-11 13:13 ` Kevin Wolf
2008-08-11 14:04 ` Laurent Vivier
2008-08-11 14:42 ` Laurent Vivier
2008-08-11 15:03 ` Kevin Wolf
2008-07-29 19:15 ` Anthony Liguori [this message]
2008-07-29 21:35 ` [Qemu-devel] [patch 0/5][v2] qcow2: improve I/O performance with cache=off Laurent Vivier
2008-07-29 21:49 ` Anthony Liguori
2008-07-29 21:59 ` Laurent Vivier
2008-08-01 14:54 ` Anthony Liguori
2008-08-01 15:05 ` Laurent Vivier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=488F6C3F.8050207@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=Laurent.Vivier@bull.net \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).