qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [patch 0/5][v2] qcow2: improve I/O performance with cache=off
@ 2008-07-29 14:13 Laurent Vivier
  2008-07-29 14:13 ` [Qemu-devel] [patch 1/5][v2] Extract code from get_cluster_offset() Laurent Vivier
                   ` (5 more replies)
  0 siblings, 6 replies; 29+ messages in thread
From: Laurent Vivier @ 2008-07-29 14:13 UTC (permalink / raw)
  To: qemu-devel; +Cc: Laurent Vivier

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]().

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
--

^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2008-08-11 15:04 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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 ` [Qemu-devel] [patch 0/5][v2] qcow2: improve I/O performance with cache=off Anthony Liguori
2008-07-29 21:35   ` 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

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).