* [Qemu-devel] [PULL 1/2] block/gluster: fix doc in the qapi schema and member name
2016-07-26 20:52 [Qemu-devel] [PULL 0/2] Block patches for 2.7 Jeff Cody
@ 2016-07-26 20:52 ` Jeff Cody
2016-07-26 20:52 ` [Qemu-devel] [PULL 2/2] mirror: double performance of the bulk stage if the disc is full Jeff Cody
2016-07-27 16:25 ` [Qemu-devel] [PULL 0/2] Block patches for 2.7 Peter Maydell
2 siblings, 0 replies; 4+ messages in thread
From: Jeff Cody @ 2016-07-26 20:52 UTC (permalink / raw)
To: qemu-block; +Cc: peter.maydell, jcody, qemu-devel
From: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
1. qapi @BlockdevOptionsGluster schema member name s/debug_level/debug-level/
2. rearrange the versioning
3. s/server description/servers description/
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Jeff Cody <jcody@redhat.com>
Message-Id: <1469198048-8535-1-git-send-email-prasanna.kalever@redhat.com>
Signed-off-by: Jeff Cody <jcody@redhat.com>
---
qapi/block-core.json | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/qapi/block-core.json b/qapi/block-core.json
index f462345..cd14e57 100644
--- a/qapi/block-core.json
+++ b/qapi/block-core.json
@@ -1688,9 +1688,9 @@
# Drivers that are supported in block device operations.
#
# @host_device, @host_cdrom: Since 2.1
-#
-# Since: 2.0
# @gluster: Since 2.7
+#
+# Since: 2.0
##
{ 'enum': 'BlockdevDriver',
'data': [ 'archipelago', 'blkdebug', 'blkverify', 'bochs', 'cloop',
@@ -2134,7 +2134,7 @@
#
# @path: absolute path to image file in gluster volume
#
-# @server: gluster server description
+# @server: gluster servers description
#
# @debug-level: #optional libgfapi log level (default '4' which is Error)
#
@@ -2144,7 +2144,7 @@
'data': { 'volume': 'str',
'path': 'str',
'server': ['GlusterServer'],
- '*debug_level': 'int' } }
+ '*debug-level': 'int' } }
##
# @BlockdevOptions
--
1.9.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Qemu-devel] [PULL 2/2] mirror: double performance of the bulk stage if the disc is full
2016-07-26 20:52 [Qemu-devel] [PULL 0/2] Block patches for 2.7 Jeff Cody
2016-07-26 20:52 ` [Qemu-devel] [PULL 1/2] block/gluster: fix doc in the qapi schema and member name Jeff Cody
@ 2016-07-26 20:52 ` Jeff Cody
2016-07-27 16:25 ` [Qemu-devel] [PULL 0/2] Block patches for 2.7 Peter Maydell
2 siblings, 0 replies; 4+ messages in thread
From: Jeff Cody @ 2016-07-26 20:52 UTC (permalink / raw)
To: qemu-block; +Cc: peter.maydell, jcody, qemu-devel
From: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Mirror can do up to 16 in-flight requests, but actually on full copy
(the whole source disk is non-zero) in-flight is always 1. This happens
as the request is not limited in size: the data occupies maximum available
capacity of s->buf.
The patch limits the size of the request to some artificial constant
(1 Mb here), which is not that big or small. This effectively enables
back parallelism in mirror code as it was designed.
The result is important: the time to migrate 10 Gb disk is reduced from
~350 sec to 170 sec.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Signed-off-by: Denis V. Lunev <den@openvz.org>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Jeff Cody <jcody@redhat.com>
Message-id: 1468516741-82174-1-git-send-email-vsementsov@virtuozzo.com
CC: Stefan Hajnoczi <stefanha@redhat.com>
CC: Fam Zheng <famz@redhat.com>
CC: Kevin Wolf <kwolf@redhat.com>
CC: Max Reitz <mreitz@redhat.com>
CC: Jeff Cody <jcody@redhat.com>
CC: Eric Blake <eblake@redhat.com>
Signed-off-by: Jeff Cody <jcody@redhat.com>
---
block/mirror.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/block/mirror.c b/block/mirror.c
index 69a1a7c..d6034f5 100644
--- a/block/mirror.c
+++ b/block/mirror.c
@@ -23,7 +23,9 @@
#define SLICE_TIME 100000000ULL /* ns */
#define MAX_IN_FLIGHT 16
-#define DEFAULT_MIRROR_BUF_SIZE (10 << 20)
+#define MAX_IO_SECTORS ((1 << 20) >> BDRV_SECTOR_BITS) /* 1 Mb */
+#define DEFAULT_MIRROR_BUF_SIZE \
+ (MAX_IN_FLIGHT * MAX_IO_SECTORS * BDRV_SECTOR_SIZE)
/* The mirroring buffer is a list of granularity-sized chunks.
* Free chunks are organized in a list.
@@ -325,6 +327,8 @@ static uint64_t coroutine_fn mirror_iteration(MirrorBlockJob *s)
int64_t end = s->bdev_length / BDRV_SECTOR_SIZE;
int sectors_per_chunk = s->granularity >> BDRV_SECTOR_BITS;
bool write_zeroes_ok = bdrv_can_write_zeroes_with_unmap(blk_bs(s->target));
+ int max_io_sectors = MAX((s->buf_size >> BDRV_SECTOR_BITS) / MAX_IN_FLIGHT,
+ MAX_IO_SECTORS);
sector_num = hbitmap_iter_next(&s->hbi);
if (sector_num < 0) {
@@ -388,7 +392,9 @@ static uint64_t coroutine_fn mirror_iteration(MirrorBlockJob *s)
nb_chunks * sectors_per_chunk,
&io_sectors, &file);
if (ret < 0) {
- io_sectors = nb_chunks * sectors_per_chunk;
+ io_sectors = MIN(nb_chunks * sectors_per_chunk, max_io_sectors);
+ } else if (ret & BDRV_BLOCK_DATA) {
+ io_sectors = MIN(io_sectors, max_io_sectors);
}
io_sectors -= io_sectors % sectors_per_chunk;
--
1.9.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [Qemu-devel] [PULL 0/2] Block patches for 2.7
2016-07-26 20:52 [Qemu-devel] [PULL 0/2] Block patches for 2.7 Jeff Cody
2016-07-26 20:52 ` [Qemu-devel] [PULL 1/2] block/gluster: fix doc in the qapi schema and member name Jeff Cody
2016-07-26 20:52 ` [Qemu-devel] [PULL 2/2] mirror: double performance of the bulk stage if the disc is full Jeff Cody
@ 2016-07-27 16:25 ` Peter Maydell
2 siblings, 0 replies; 4+ messages in thread
From: Peter Maydell @ 2016-07-27 16:25 UTC (permalink / raw)
To: Jeff Cody; +Cc: Qemu-block, QEMU Developers
On 26 July 2016 at 21:52, Jeff Cody <jcody@redhat.com> wrote:
> The following changes since commit f49ee630d73729ecaeecf4b38a8df11bc613914d:
>
> Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-2.7-20160726' into staging (2016-07-26 11:53:47 +0100)
>
> are available in the git repository at:
>
>
> git@github.com:codyprime/qemu-kvm-jtc.git tags/block-pull-request
>
> for you to fetch changes up to 0965a41e998ab820b5d660c8abfc8c819c97bc1b:
>
> mirror: double performance of the bulk stage if the disc is full (2016-07-26 16:23:36 -0400)
>
> ----------------------------------------------------------------
> Block patches for 2.7
> ----------------------------------------------------------------
Applied, thanks.
-- PMM
^ permalink raw reply [flat|nested] 4+ messages in thread