qemu-patch-raspberry4/include
Peter Lieven 465bee1da8 block: optimize zero writes with bdrv_write_zeroes
this patch tries to optimize zero write requests
by automatically using bdrv_write_zeroes if it is
supported by the format.

This significantly speeds up file system initialization and
should speed zero write test used to test backend storage
performance.

I ran the following 2 tests on my internal SSD with a
50G QCOW2 container and on an attached iSCSI storage.

a) mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0 /dev/vdX

QCOW2         [off]     [on]     [unmap]
-----
runtime:       14secs    1.1secs  1.1secs
filesize:      937M      18M      18M

iSCSI         [off]     [on]     [unmap]
----
runtime:       9.3s      0.9s     0.9s

b) dd if=/dev/zero of=/dev/vdX bs=1M oflag=direct

QCOW2         [off]     [on]     [unmap]
-----
runtime:       246secs   18secs   18secs
filesize:      51G       192K     192K
throughput:    203M/s    2.3G/s   2.3G/s

iSCSI*        [off]     [on]     [unmap]
----
runtime:       8mins     45secs   33secs
throughput:    106M/s    1.2G/s   1.6G/s
allocated:     100%      100%     0%

* The storage was connected via an 1Gbit interface.
  It seems to internally handle writing zeroes
  via WRITESAME16 very fast.

Signed-off-by: Peter Lieven <pl@kamp.de>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2014-05-19 13:42:27 +02:00
..
block block: optimize zero writes with bdrv_write_zeroes 2014-05-19 13:42:27 +02:00
disas disas: Implement disassembly output for A64 2014-02-08 14:50:48 +00:00
exec tcg/s390 updates 2014-05-15 18:56:08 +01:00
fpu softfloat: Introduce float32_to_uint64_round_to_zero 2014-04-08 11:20:00 +02:00
hw pci: add Error-propagating pci_add_capability2() 2014-05-08 14:19:59 -04:00
migration migration: expose xbzrle cache miss rate 2014-05-05 22:15:03 +02:00
monitor monitor: add Error-propagating monitor_handle_fd_param2() 2014-05-08 14:19:58 -04:00
net net: remove implicit peer from offload API 2014-02-25 14:31:05 +01:00
qapi qdict: Add qdict_join() 2014-05-19 11:36:48 +02:00
qemu machine: Replace QEMUMachine by MachineClass in accelerator configuration 2014-05-05 19:08:49 +02:00
qom cpu: Avoid QOM casts for CPU() 2014-03-31 19:28:38 +02:00
sysemu kvm: reset state from the CPU's reset method 2014-05-13 13:12:40 +02:00
ui gtk: Allow to activate grab-on-hover from the command line 2014-03-17 14:33:55 +01:00
config.h janitor: move remaining public headers to include/ 2012-12-19 08:32:46 +01:00
elf.h linux-user/elfload.c: Support ARM HWCAP2 flags 2014-05-02 21:59:36 +03:00
glib-compat.h glib: fix g_poll early timeout on windows 2014-05-09 20:57:35 +02:00
qemu-common.h util: add qemu_iovec_is_zero 2014-05-19 12:20:19 +02:00
qemu-io.h qemu-io: Fix warnings from static code analysis 2014-03-13 14:42:24 +01:00
trace.h build: some simplifications for "trace/Makefile.objs" 2013-01-12 18:42:51 +01:00