[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [RFC PATCH 0/8] qemu-img convert with copy offloading
From: |
Fam Zheng |
Subject: |
[Qemu-block] [RFC PATCH 0/8] qemu-img convert with copy offloading |
Date: |
Thu, 29 Mar 2018 19:09:06 +0800 |
[Posting a preview RFC for the general idea discussion and internal API review.
Libiscsi support is being worked on in the meantime.]
This series introduces block layer API for copy offloading and makes use of it
in qemu-img convert.
For now we implemented the operation in local file protocol with
copy_file_range(2). Besides that it's possible to add similar to iscsi, nfs
and potentially more.
As far as its usage goes, in addition to qemu-img convert, we can emulate
offloading in scsi-disk (EXTENDED COPY), and do similar to drive-mirror.
The new bdrv_co_map_range can also be an alternative way to implement format
drivers in the future, once we make block/io.c use it in preadv/pwritev paths.
Fam Zheng (8):
block: Introduce bdrv_co_map_range API
qcow2: Implement bdrv_co_map_range
block: Introduce bdrv_co_copy_range
file-posix: Implement bdrv_co_copy_range
file-posix: Implement bdrv_co_map_range
raw: Implement raw_co_map_range
block-backend: Add blk_co_copy_range
qemu-img: Convert with copy offloading
block/block-backend.c | 8 ++
block/file-posix.c | 92 +++++++++++++++++++-
block/io.c | 192 +++++++++++++++++++++++++++++++++++++++++
block/qcow2.c | 103 +++++++++++++++-------
block/raw-format.c | 9 ++
include/block/block.h | 12 ++-
include/block/block_int.h | 35 ++++++++
include/block/raw-aio.h | 10 ++-
include/sysemu/block-backend.h | 4 +
qemu-img.c | 45 +++++++++-
10 files changed, 472 insertions(+), 38 deletions(-)
--
2.14.3
- [Qemu-block] [RFC PATCH 0/8] qemu-img convert with copy offloading,
Fam Zheng <=
- [Qemu-block] [RFC PATCH 1/8] block: Introduce bdrv_co_map_range API, Fam Zheng, 2018/03/29
- [Qemu-block] [RFC PATCH 2/8] qcow2: Implement bdrv_co_map_range, Fam Zheng, 2018/03/29
- [Qemu-block] [RFC PATCH 3/8] block: Introduce bdrv_co_copy_range, Fam Zheng, 2018/03/29
- [Qemu-block] [RFC PATCH 5/8] file-posix: Implement bdrv_co_map_range, Fam Zheng, 2018/03/29
- [Qemu-block] [RFC PATCH 4/8] file-posix: Implement bdrv_co_copy_range, Fam Zheng, 2018/03/29
- [Qemu-block] [RFC PATCH 6/8] raw: Implement raw_co_map_range, Fam Zheng, 2018/03/29
- [Qemu-block] [RFC PATCH 8/8] qemu-img: Convert with copy offloading, Fam Zheng, 2018/03/29
- [Qemu-block] [RFC PATCH 7/8] block-backend: Add blk_co_copy_range, Fam Zheng, 2018/03/29
- Re: [Qemu-block] [Qemu-devel] [RFC PATCH 0/8] qemu-img convert with copy offloading, no-reply, 2018/03/31