qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 443668: block: split write_zeroes always


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 443668: block: split write_zeroes always
Date: Wed, 08 Jun 2016 10:30:07 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 443668ca408cdb7f01e1a70a58518bb100c3e9d1
      
https://github.com/qemu/qemu/commit/443668ca408cdb7f01e1a70a58518bb100c3e9d1
  Author: Denis V. Lunev <address@hidden>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M block/io.c
    M tests/qemu-iotests/154.out

  Log Message:
  -----------
  block: split write_zeroes always

We should split requests even if they are less than write_zeroes_alignment.
For example we can have the following request:
  offset 62k
  size   4k
  write_zeroes_alignment 64k
The original code sent 1 request covering 2 qcow2 clusters, and resulted
in both clusters being allocated. But by splitting the request, we can
cater to the case where one of the two clusters can be zeroed as a
whole, for only 1 cluster allocated after the operation.

Signed-off-by: Denis V. Lunev <address@hidden>
CC: Eric Blake <address@hidden>
CC: Kevin Wolf <address@hidden>
Message-Id: <address@hidden>

[eblake: Avoid exceeding nb_sectors, hoist alignment checks out of
loop, and update testsuite to show that patch works]

Signed-off-by: Eric Blake <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: ba142846b0f608c433e71d61efc6467c7b367dbf
      
https://github.com/qemu/qemu/commit/ba142846b0f608c433e71d61efc6467c7b367dbf
  Author: Denis V. Lunev <address@hidden>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M block/qcow2.c

  Log Message:
  -----------
  qcow2: simplify logic in qcow2_co_write_zeroes

Unaligned requests will occupy only one cluster. This is true since the
previous commit. Simplify the code taking this consideration into
account.

In other words, the caller is now buggy if it ever passes us an unaligned
request that crosses cluster boundaries (the only requests that can cross
boundaries will be aligned).

There are no other changes so far.

Signed-off-by: Denis V. Lunev <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
CC: Eric Blake <address@hidden>
CC: Kevin Wolf <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 5a64e9425160ace607b2043804d73d5579808bd3
      
https://github.com/qemu/qemu/commit/5a64e9425160ace607b2043804d73d5579808bd3
  Author: Denis V. Lunev <address@hidden>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M block/qcow2.c
    M trace-events

  Log Message:
  -----------
  qcow2: add tracepoints for qcow2_co_write_zeroes

This patch follows guidelines of all other tracepoints in qcow2, like ones
in qcow2_co_writev. I think that they should dump values in the same
quantities or be changed all together.

Signed-off-by: Denis V. Lunev <address@hidden>
CC: Eric Blake <address@hidden>
CC: Kevin Wolf <address@hidden>
Message-Id: <address@hidden>
[eblake: typo fix in commit message]
Signed-off-by: Eric Blake <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 31ad4fdf914e86a2ea105ff3687a0f4dfc4802cb
      
https://github.com/qemu/qemu/commit/31ad4fdf914e86a2ea105ff3687a0f4dfc4802cb
  Author: Eric Blake <address@hidden>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M tests/qemu-iotests/154
    M tests/qemu-iotests/154.out

  Log Message:
  -----------
  qemu-iotests: Test one more spot for optimizing write_zeroes

Add another test to 154, showing that we currently allocate a
data cluster in the top layer if any sector of the backing file
was allocated.  The next patch will optimize this case.

Signed-off-by: Eric Blake <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: ebb718a5c7240f6ffb308e0d0b67a92c3b63b91c
      
https://github.com/qemu/qemu/commit/ebb718a5c7240f6ffb308e0d0b67a92c3b63b91c
  Author: Eric Blake <address@hidden>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M block/qcow2.c
    M tests/qemu-iotests/154.out

  Log Message:
  -----------
  qcow2: Catch more unaligned write_zero into zero cluster

is_zero_cluster() and is_zero_cluster_top_locked() are used only
by qcow2_co_write_zeroes().  The former is too broad (we don't
care if the sectors we are about to overwrite are non-zero, only
that all other sectors in the cluster are zero), so it needs to
be called up to twice but with smaller limits - rename it along
with adding the neeeded parameter.  The latter can be inlined for
more compact code.

The testsuite change shows that we now have a sparser top file
when an unaligned write_zeroes overwrites the only portion of
the backing file with data.

Based on a patch proposal by Denis V. Lunev.

CC: Denis V. Lunev <address@hidden>
Signed-off-by: Eric Blake <address@hidden>
Reviewed-by: Denis V. Lunev <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 8b1847445159ff6c12e7a24f04dc989ff97e34d4
      
https://github.com/qemu/qemu/commit/8b1847445159ff6c12e7a24f04dc989ff97e34d4
  Author: Eric Blake <address@hidden>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M block/iscsi.c

  Log Message:
  -----------
  iscsi: Use block size as minimum zero/discard alignment

If hardware does not advertise a minimum zero/discard
alignment, we still want to guarantee that the block layer
will align requests to our blocks, rather than the arbitrary
512-byte BDRV sector size.

Signed-off-by: Eric Blake <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: cf081fca4e3cc02a309659b571ab0c5b225ea4cf
      
https://github.com/qemu/qemu/commit/cf081fca4e3cc02a309659b571ab0c5b225ea4cf
  Author: Eric Blake <address@hidden>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M block/io.c
    M block/iscsi.c
    M block/qcow2.c
    M block/qed.c
    M block/vmdk.c
    M include/block/block_int.h

  Log Message:
  -----------
  block: Track write zero limits in bytes

Another step towards removing sector-based interfaces: convert
the maximum write and minimum alignment values from sectors to
bytes.  Rename the variables to let the compiler check that all
users are converted to the new semantics.

The maximum remains an int as long as BDRV_REQUEST_MAX_SECTORS
is constrained by INT_MAX (this means that we can't even
support a 2G write_zeroes, but just under it) - changing
operation lengths to unsigned or to 64-bits is a much bigger
audit, and debatable if we even want to do it (since at the
core, a 32-bit platform will still have ssize_t as its
underlying limit on write()).

Meanwhile, alignment is changed to 'uint32_t', since it makes no
sense to have an alignment larger than the maximum write, and
less painful to use an unsigned type with well-defined behavior
in bit operations than to have to worry about what happens if
a driver mistakenly supplies a negative alignment.

Add an assert that no one was trying to use sectors to get a
write zeroes larger than 2G, and therefore that a later conversion
to bytes won't be impacted by keeping the limit at 32 bits.

Signed-off-by: Eric Blake <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: d05aa8bb4a8b6aa9a915ec5074fb12ae632d2323
      
https://github.com/qemu/qemu/commit/d05aa8bb4a8b6aa9a915ec5074fb12ae632d2323
  Author: Eric Blake <address@hidden>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M block/io.c
    M include/block/block_int.h

  Log Message:
  -----------
  block: Add .bdrv_co_pwrite_zeroes()

Update bdrv_co_do_write_zeroes() to be byte-based, and select
between the new byte-based bdrv_co_pwrite_zeroes() or the old
bdrv_co_write_zeroes().  The next patches will convert drivers,
then remove the old interface.

Signed-off-by: Eric Blake <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 74021bc497c8e8a1b03d633656aa5ff7112bd721
      
https://github.com/qemu/qemu/commit/74021bc497c8e8a1b03d633656aa5ff7112bd721
  Author: Eric Blake <address@hidden>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M block/blkreplay.c
    M block/io.c
    M block/parallels.c
    M block/qcow2-cluster.c
    M block/qcow2.c
    M block/raw_bsd.c
    M include/block/block.h
    M migration/block.c
    M tests/qemu-iotests/034
    M tests/qemu-iotests/154
    M trace-events

  Log Message:
  -----------
  block: Switch bdrv_write_zeroes() to byte interface

Rename to bdrv_pwrite_zeroes() to let the compiler ensure we
cater to the updated semantics.  Do the same for bdrv_co_write_zeroes().

Signed-off-by: Eric Blake <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 94d047a35bf663e28f8fef137544d8ea78165add
      
https://github.com/qemu/qemu/commit/94d047a35bf663e28f8fef137544d8ea78165add
  Author: Eric Blake <address@hidden>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M block/iscsi.c

  Log Message:
  -----------
  iscsi: Convert to bdrv_co_pwrite_zeroes()

Another step on our continuing quest to switch to byte-based
interfaces.

As this is the first byte-based iscsi interface, convert
is_request_lun_aligned() into two versions, one for sectors
and one for bytes.  Also, change from outright -EINVAL failure
on an unaligned request, to instead failing with -ENOTSUP to
trigger a read-modify-write fallback, particularly since the
block layer should be honoring bs->request_alignment to avoid
-EINVAL on read/write requests.

Signed-off-by: Eric Blake <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 5544b59f8e672bf0a32bef376c59902530f8240f
      
https://github.com/qemu/qemu/commit/5544b59f8e672bf0a32bef376c59902530f8240f
  Author: Eric Blake <address@hidden>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M block/qcow2.c
    M trace-events

  Log Message:
  -----------
  qcow2: Convert to bdrv_co_pwrite_zeroes()

Another step on our continuing quest to switch to byte-based
interfaces.

Signed-off-by: Eric Blake <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 9c21a4220b021bb605bf8e51a629ff7e54105c40
      
https://github.com/qemu/qemu/commit/9c21a4220b021bb605bf8e51a629ff7e54105c40
  Author: Eric Blake <address@hidden>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M block/blkreplay.c

  Log Message:
  -----------
  blkreplay: Convert to bdrv_co_pwrite_zeroes()

Another step on our continuing quest to switch to byte-based
interfaces.

Signed-off-by: Eric Blake <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: e88a36ebad257fbbdd3ea534624d14938c2c441b
      
https://github.com/qemu/qemu/commit/e88a36ebad257fbbdd3ea534624d14938c2c441b
  Author: Eric Blake <address@hidden>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M block/gluster.c

  Log Message:
  -----------
  gluster: Convert to bdrv_co_pwrite_zeroes()

Another step on our continuing quest to switch to byte-based
interfaces.

Signed-off-by: Eric Blake <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 49a2e48348b7b0fda04e9d767a537e6c5d230bdd
      
https://github.com/qemu/qemu/commit/49a2e48348b7b0fda04e9d767a537e6c5d230bdd
  Author: Eric Blake <address@hidden>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M block/qed.c

  Log Message:
  -----------
  qed: Convert to bdrv_co_pwrite_zeroes()

Another step on our continuing quest to switch to byte-based
interfaces.

Kill an abuse of the comma operator while at it (fortunately,
the semantics were still right).  Also, the test for requests
not aligned to clusters should be applied always, not just
when a backing file is present.

Signed-off-by: Eric Blake <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 2ffa76c2bf97416b8d6904efb1e5f147f36127eb
      
https://github.com/qemu/qemu/commit/2ffa76c2bf97416b8d6904efb1e5f147f36127eb
  Author: Eric Blake <address@hidden>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M block/raw-posix.c
    M trace-events

  Log Message:
  -----------
  raw-posix: Convert to bdrv_co_pwrite_zeroes()

Another step on our continuing quest to switch to byte-based
interfaces.

Signed-off-by: Eric Blake <address@hidden>
[ kwolf: Fixed up trace_paio_submit_co() call for qiov == NULL ]
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 39ad937e162fb14f5ec940b7a9cf8a38992d7217
      
https://github.com/qemu/qemu/commit/39ad937e162fb14f5ec940b7a9cf8a38992d7217
  Author: Eric Blake <address@hidden>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M block/raw_bsd.c

  Log Message:
  -----------
  raw_bsd: Convert to bdrv_co_pwrite_zeroes()

Another step on our continuing quest to switch to byte-based
interfaces.

Signed-off-by: Eric Blake <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: a620f2ae1566a72aac289d40d72decbf95fc6de8
      
https://github.com/qemu/qemu/commit/a620f2ae1566a72aac289d40d72decbf95fc6de8
  Author: Eric Blake <address@hidden>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M block/vmdk.c

  Log Message:
  -----------
  vmdk: Convert to bdrv_co_pwrite_zeroes()

Another step on our continuing quest to switch to byte-based
interfaces.

Signed-off-by: Eric Blake <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: c1499a5e73ae81b597869263ed8ac87bdaafeff7
      
https://github.com/qemu/qemu/commit/c1499a5e73ae81b597869263ed8ac87bdaafeff7
  Author: Eric Blake <address@hidden>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M block/io.c
    M include/block/block_int.h

  Log Message:
  -----------
  block: Kill bdrv_co_write_zeroes()

Now that all drivers have been converted to a byte interface,
we no longer need a sector interface.

Signed-off-by: Eric Blake <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: ad2964b4fff89a32c20cfad8d904a96929956c9e
      
https://github.com/qemu/qemu/commit/ad2964b4fff89a32c20cfad8d904a96929956c9e
  Author: Kevin Wolf <address@hidden>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M migration/block.c

  Log Message:
  -----------
  migration/block: Convert load to BlockBackend

This converts the loading part of block migration to use BlockBackend
interfaces rather than accessing the BlockDriverState directly.

Note that this takes a lazy shortcut. We should really use a separate
BlockBackend that is configured for the migration rather than for the
guest (e.g. writethrough caching is unnecessary) and holds its own
reference to the BlockDriverState, but the impact isn't that big and we
didn't have a separate migration reference before either, so it must be
good enough, I guess...

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>


  Commit: ebd2f9e7db4b6cbc2f144b9cef397503b3e956b5
      
https://github.com/qemu/qemu/commit/ebd2f9e7db4b6cbc2f144b9cef397503b3e956b5
  Author: Kevin Wolf <address@hidden>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M migration/block.c

  Log Message:
  -----------
  migration/block: Convert saving to BlockBackend

This creates a new BlockBackend for copying data from an images to the
migration stream on the source host. All I/O for block migration goes
through BlockBackend now.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>


  Commit: 107d433cbbc347cdd140c0f2de4574ff3675bdbe
      
https://github.com/qemu/qemu/commit/107d433cbbc347cdd140c0f2de4574ff3675bdbe
  Author: Peter Lieven <address@hidden>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: assert that bs->request_alignment is a power of 2

at least bdrv_co_preadv/pwritev expect this.

Signed-off-by: Peter Lieven <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 6f6071745bd0366221f5a0160ed7d18d0e38b9f7
      
https://github.com/qemu/qemu/commit/6f6071745bd0366221f5a0160ed7d18d0e38b9f7
  Author: Fam Zheng <address@hidden>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M block/raw-posix.c

  Log Message:
  -----------
  raw-posix: Fetch max sectors for host block device

This is sometimes a useful value we should count in.

Signed-off-by: Fam Zheng <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: f3c3b87dae44ac6c82246ceb3953793951800a9a
      
https://github.com/qemu/qemu/commit/f3c3b87dae44ac6c82246ceb3953793951800a9a
  Author: Denis V. Lunev <address@hidden>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M block/qcow2-cache.c
    M block/qcow2.c
    M block/qcow2.h

  Log Message:
  -----------
  qcow2: avoid extra flushes in qcow2

The problem with excessive flushing was found by a couple of performance
tests:
  - parallel directory tree creation (from 2 processes)
  - 32 cached writes + fsync at the end in a loop

For the first one results improved from 2.6 loops/sec to 3.5 loops/sec.
Each loop creates 10^3 directories with 10 files in each.

For the second one results improved from ~600 fsync/sec to ~1100
fsync/sec. Though, it was run on SSD so it probably won't show such
performance gain on rotational media.

qcow2_cache_flush() calls bdrv_flush() unconditionally after writing
cache entries of a particular cache. This can lead to as many as
2 additional fdatasyncs inside bdrv_flush.

We can simply skip all fdatasync calls inside qcow2_co_flush_to_os
as bdrv_flush for sure will do the job. These flushes are necessary to
keep the right order of writes to the different caches. Though this is
not necessary in the current code base as this ordering is ensured through
the flush in qcow2_cache_flush_dependency().

Signed-off-by: Denis V. Lunev <address@hidden>
CC: Pavel Borzenkov <address@hidden>
CC: Kevin Wolf <address@hidden>
CC: Max Reitz <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 2a9170bcd4980cdd75791f3aa0f762c5e53334bb
      
https://github.com/qemu/qemu/commit/2a9170bcd4980cdd75791f3aa0f762c5e53334bb
  Author: Kevin Wolf <address@hidden>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M block/snapshot.c

  Log Message:
  -----------
  block: Fix bdrv_all_delete_snapshot() error handling

The code to exit the loop after bdrv_snapshot_delete_by_id_or_name()
returned failure was duplicated. The first copy of it was too early so
that the AioContext lock would not be freed. This patch removes it so
that only the second, correct copy remains.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>


  Commit: bf18bee547d19fde314e7b6b81f21f68b46c8a92
      
https://github.com/qemu/qemu/commit/bf18bee547d19fde314e7b6b81f21f68b46c8a92
  Author: Colin Lord <address@hidden>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M blockdev.c

  Log Message:
  -----------
  blockdev: clean up error handling in do_open_tray

Returns negative error codes and accompanying error messages in cases where
the device has no tray or the tray is locked and isn't forced open. This
extra information should result in better flexibility in functions that
call do_open_tray.

Suggested by: Markus Armbruster <address@hidden>
Signed-off-by: Colin Lord <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 515c2f431ebe561e69c57371b2c2217792b3b820
      
https://github.com/qemu/qemu/commit/515c2f431ebe561e69c57371b2c2217792b3b820
  Author: Kevin Wolf <address@hidden>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M block/io.c

  Log Message:
  -----------
  block: Don't emulate natively supported pwritev flags

Drivers that implement .bdrv_co_pwritev() get the flags passed as an
argument to said function, but we also unconditionally emulate the flags
anyway. We shouldn't do that.

Fix this by clearing all flags that the driver supports natively after
it returns from .bdrv_co_pwritev().

Fixes: 4df863f3 ('block: Make supported_write_flags a per-bds property')
Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Eric Blake <address@hidden>


  Commit: b6133b8c68c75cdb6b74d23257cd330bb66f595b
      
https://github.com/qemu/qemu/commit/b6133b8c68c75cdb6b74d23257cd330bb66f595b
  Author: Kevin Wolf <address@hidden>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M qemu-img-cmds.hx
    M qemu-img.c
    M qemu-img.texi

  Log Message:
  -----------
  qemu-img bench

This adds a qemu-img command that allows doing some simple benchmarks
for the block layer without involving guest devices and a real VM.

For the start, this implements only a test of sequential reads.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Denis V. Lunev <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>


  Commit: b6495fa8493bb56e51506e39a5e575a4404c1cec
      
https://github.com/qemu/qemu/commit/b6495fa8493bb56e51506e39a5e575a4404c1cec
  Author: Kevin Wolf <address@hidden>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M qemu-img-cmds.hx
    M qemu-img.c
    M qemu-img.texi

  Log Message:
  -----------
  qemu-img bench: Sequential writes

This extends qemu-img bench with an option that makes it use sequential
writes instead of reads for the test run.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Denis V. Lunev <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>


  Commit: d3199a31c7bc72f6bcecbb3ebcc16940a1721e10
      
https://github.com/qemu/qemu/commit/d3199a31c7bc72f6bcecbb3ebcc16940a1721e10
  Author: Kevin Wolf <address@hidden>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M qemu-img-cmds.hx
    M qemu-img.c
    M qemu-img.texi

  Log Message:
  -----------
  qemu-img bench: Make start offset configurable

This patch adds an option the specify the offset of the first request
made by qemu-img bench. This allows to benchmark misaligned requests.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Denis V. Lunev <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>


  Commit: 83de9be0dc59439ec6f97f58c8e9015b4fdc3010
      
https://github.com/qemu/qemu/commit/83de9be0dc59439ec6f97f58c8e9015b4fdc3010
  Author: Kevin Wolf <address@hidden>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M qemu-img-cmds.hx
    M qemu-img.c
    M qemu-img.texi

  Log Message:
  -----------
  qemu-img bench: Implement -S (step size)

With this new option, qemu-img bench can be told to advance the current
offset after each request by a different value than the buffer size.
This is useful for controlling the conditions for cluster allocation in
image formats (e.g. qcow2 cluster allocation with COW in front of the
request, or COW areas that aren't overwritten immediately).

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Denis V. Lunev <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>


  Commit: 55d539c8f75abab70301a43d8c94b976f6ddc358
      
https://github.com/qemu/qemu/commit/55d539c8f75abab70301a43d8c94b976f6ddc358
  Author: Kevin Wolf <address@hidden>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M qemu-img-cmds.hx
    M qemu-img.c
    M qemu-img.texi

  Log Message:
  -----------
  qemu-img bench: Add --flush-interval

This options allows to flush the image periodically during write tests.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Denis V. Lunev <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>


  Commit: 6f50f25c825fbd0edd2dc43b9a63edfecfd4a3e9
      
https://github.com/qemu/qemu/commit/6f50f25c825fbd0edd2dc43b9a63edfecfd4a3e9
  Author: Peter Maydell <address@hidden>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M block.c
    M block/blkreplay.c
    M block/gluster.c
    M block/io.c
    M block/iscsi.c
    M block/parallels.c
    M block/qcow2-cache.c
    M block/qcow2-cluster.c
    M block/qcow2.c
    M block/qcow2.h
    M block/qed.c
    M block/raw-posix.c
    M block/raw_bsd.c
    M block/snapshot.c
    M block/vmdk.c
    M blockdev.c
    M include/block/block.h
    M include/block/block_int.h
    M migration/block.c
    M qemu-img-cmds.hx
    M qemu-img.c
    M qemu-img.texi
    M tests/qemu-iotests/034
    M tests/qemu-iotests/154
    M tests/qemu-iotests/154.out
    M trace-events

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging

Block layer patches

# gpg: Signature made Wed 08 Jun 2016 09:31:38 BST
# gpg:                using RSA key 0x7F09B272C88F2FD6
# gpg: Good signature from "Kevin Wolf <address@hidden>"

* remotes/kevin/tags/for-upstream: (31 commits)
  qemu-img bench: Add --flush-interval
  qemu-img bench: Implement -S (step size)
  qemu-img bench: Make start offset configurable
  qemu-img bench: Sequential writes
  qemu-img bench
  block: Don't emulate natively supported pwritev flags
  blockdev: clean up error handling in do_open_tray
  block: Fix bdrv_all_delete_snapshot() error handling
  qcow2: avoid extra flushes in qcow2
  raw-posix: Fetch max sectors for host block device
  block: assert that bs->request_alignment is a power of 2
  migration/block: Convert saving to BlockBackend
  migration/block: Convert load to BlockBackend
  block: Kill bdrv_co_write_zeroes()
  vmdk: Convert to bdrv_co_pwrite_zeroes()
  raw_bsd: Convert to bdrv_co_pwrite_zeroes()
  raw-posix: Convert to bdrv_co_pwrite_zeroes()
  qed: Convert to bdrv_co_pwrite_zeroes()
  gluster: Convert to bdrv_co_pwrite_zeroes()
  blkreplay: Convert to bdrv_co_pwrite_zeroes()
  ...

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/d36ebffe945d...6f50f25c825f

reply via email to

[Prev in Thread] Current Thread [Next in Thread]