[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [Qemu-block] [PULL 76/76] block: move I/O request proce
From: |
Eric Blake |
Subject: |
Re: [Qemu-devel] [Qemu-block] [PULL 76/76] block: move I/O request processing to block/io.c |
Date: |
Tue, 28 Apr 2015 11:15:07 -0600 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 |
On 04/28/2015 09:00 AM, Kevin Wolf wrote:
> From: Stefan Hajnoczi <address@hidden>
>
> The block.c file has grown to over 6000 lines. It is time to split this
> file so there are fewer conflicts and the code is easier to maintain.
>
> Extract I/O request processing code:
> * Read
> * Write
> * Zero writes and making the image empty
> * Flush
> * Discard
> * ioctl
> * Tracked requests and queuing
> * Throttling and copy-on-read
> * Block status and allocated functions
> * Refreshing block limits
> * Reading/writing vmstate
> * qemu_blockalign() and friends
>
> The patch simply moves code from block.c into block/io.c.
>
> Signed-off-by: Stefan Hajnoczi <address@hidden>
> Signed-off-by: Kevin Wolf <address@hidden>
> ---
> block.c | 3394
> +++++++--------------------------------------------
> block/Makefile.objs | 2 +-
> block/io.c | 2540 ++++++++++++++++++++++++++++++++++++++
> 3 files changed, 2982 insertions(+), 2954 deletions(-)
> create mode 100644 block/io.c
Kevin, compare your diff to Stefan's:
> ---
> block.c | 2512 --------------------------------------------------
> block/Makefile.objs | 2 +-
> block/io.c | 2540
> +++++++++++++++++++++++++++++++++++++++++++++++++++
> 3 files changed, 2541 insertions(+), 2513 deletions(-)
> create mode 100644 block/io.c
The difference is that Stefan has done 'git config diff.algorithm
patience', which makes for MUCH more legible diffs on a code motion
patch. http://wiki.qemu.org/Contribute/SubmitAPatch mentions this as a
hint for a nicer setup.
At any rate, you've already sent the pull request, so I'm probably too
late; but for the record, here's why I would add:
Reviewed-by: Eric Blake <address@hidden>
when reviewing Stefan's version of the patch (the two versions give the
same end result, but my review technique falls flat on Kevin's replay of
the patch)
$ diff -u <(sed -n 's/^-//p' patch) <(sed -n 's/^+//p' patch)
--- /dev/fd/63 2015-04-28 11:13:24.696901797 -0600
+++ /dev/fd/62 2015-04-28 11:13:24.697901792 -0600
@@ -1,6 +1,38 @@
---
--- a/block.c
+++ b/block.c
+++ b/block/Makefile.objs
+block-obj-y += null.o mirror.o io.o
+++ b/block/io.c
+/*
+ * Block layer I/O functions
+ *
+ * Copyright (c) 2003 Fabrice Bellard
+ *
+ * Permission is hereby granted, free of charge, to any person
obtaining a copy
+ * of this software and associated documentation files (the
"Software"), to deal
+ * in the Software without restriction, including without limitation
the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#include "trace.h"
#include "sysemu/qtest.h"
+#include "block/blockjob.h"
+#include "block/block_int.h"
+
+#define NOT_DONE 0x7fffffff /* used while emulated sync operation in
progress */
+
static BlockAIOCB *bdrv_aio_readv_em(BlockDriverState *bs,
int64_t sector_num, QEMUIOVector *qiov, int nb_sectors,
BlockCompletionFunc *cb, void *opaque);
@@ -465,7 +497,6 @@
return waited;
}
-
static int bdrv_check_byte_request(BlockDriverState *bs, int64_t offset,
size_t size)
{
@@ -2511,8 +2542,3 @@
bdrv_flush_io_queue(bs->file);
}
}
-
--- a/block/Makefile.objs
-block-obj-y += null.o mirror.o
--- /dev/null
--
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
- [Qemu-devel] [PULL 68/76] iotests: add incremental backup failure recovery test, (continued)
- [Qemu-devel] [PULL 68/76] iotests: add incremental backup failure recovery test, Kevin Wolf, 2015/04/28
- [Qemu-devel] [PULL 69/76] iotests: add incremental backup granularity tests, Kevin Wolf, 2015/04/28
- [Qemu-devel] [PULL 71/76] block/dmg: make it modular, Kevin Wolf, 2015/04/28
- [Qemu-devel] [PULL 70/76] block/mirror: Always call block_job_sleep_ns(), Kevin Wolf, 2015/04/28
- [Qemu-devel] [PULL 73/76] block: replace bdrv_states iteration with bdrv_next(), Kevin Wolf, 2015/04/28
- [Qemu-devel] [PULL 67/76] iotests: add simple incremental backup case, Kevin Wolf, 2015/04/28
- [Qemu-devel] [PULL 72/76] vmdk: Widen before shifting 32 bit header field, Kevin Wolf, 2015/04/28
- [Qemu-devel] [PULL 74/76] block: add bdrv_set_dirty()/bdrv_reset_dirty() to block_int.h, Kevin Wolf, 2015/04/28
- [Qemu-devel] [PULL 75/76] block: extract bdrv_setup_io_funcs(), Kevin Wolf, 2015/04/28
- [Qemu-devel] [PULL 76/76] block: move I/O request processing to block/io.c, Kevin Wolf, 2015/04/28
- Re: [Qemu-devel] [Qemu-block] [PULL 76/76] block: move I/O request processing to block/io.c,
Eric Blake <=
- [Qemu-devel] [PULL 66/76] iotests: add QMP event waiting queue, Kevin Wolf, 2015/04/28
- Re: [Qemu-devel] [PULL 00/76] Block patches, Peter Maydell, 2015/04/28