From: Chrysostomos Nanakos <cnanakos@grnet.gr>
To: qemu-devel@nongnu.org
Cc: kwolf@redhat.com, Chrysostomos Nanakos <cnanakos@grnet.gr>,
stefanha@redhat.com
Subject: [Qemu-devel] [PATCH v7 0/5] Support Archipelago as a QEMU block backend
Date: Wed, 23 Jul 2014 17:07:28 +0300 [thread overview]
Message-ID: <1406124453-12226-1-git-send-email-cnanakos@grnet.gr> (raw)
v7:
- Fix coding style issues.
- Rename __archipelago_submit_request function to archipelago_submit_request.
- Set X_NONBLOCK flag to xseg_receive().
- Return -EIO to .bdrv_getlength() if archipelago_volume_info() fails.
- Fix segment_name mem leak.
- Bump version number from 2.1 to 2.2 in qapi/block-core.json file concerning
QEMU Archipelago support.
- Convert qemu_aio_wait() to aio_poll().
- Remove qemu_blockalign() and memcpy() call and use qemu_iovec_to_buf()
directly.
v6:
- Split v5 1/4 patch into two different patches. First one implements
QMP structured options and the second one implements bdrv_parse_filename().
v5:
- Remove useless qemu_aio_count variable from BDRVArchipelagoState struct.
- Cleanup xseg signal descriptor, call xseg_quit_local_signal() when closing
block device.
- Fix ds and volname leaks.
- Make xseg request handler thread joinable and wait until exits before
destroying condition variables and mutexes. Thanks to Stefan Hajnoczi for
pointing this out.
- Remove error_propagate() useless call.
- Use memcpy instead of strncpy.
- Remove check after trying to allocate memory with g_malloc().
- Remove pipe code and complete AIO by introducing QEMU "bottom-half".
- Add Archipelago shared memory segment name in options list and QMP.
- Remove functions archipelago_aio_read()/_write() and introduce new
and simpler function, __archipelago_submit_request().
Refactor archipelago_aio_segmented_rw() function.
- Enable Archipelago support in qemu-iotests
v4:
- Move Archipelago QMP support from qapi-schema.json file to
qapi/block-core.json. Fixe various typographic errors, thanks to
Kevin Wolf and Eric Blake.
- Use new .create_opts format, define new QemuOptsList structure and refactor
qemu_archipelago_create function.
v3:
- Break down initial patch from one to three. First patch implements
Archipelago QEMU block backend with read/write functionality.
Second patch implements .bdrv_create() and adds support for creating
Archipelago images. Third patch adds QMP support.
- Remove global variable g_xseg_init, make xseg_initialize(), xseg_join()
and xseg_leave() reentrant and thread-safe.
- Introduce new enum BlockdevOptionsArchipelago for the QMP support.
v2:
- Implement .bdrv_parse_filename() function to convert the shortuct version
with a single string to the individual options.
- Remove global variables and move relevant fields to ArchipelagoAIOCB struct.
- Remove ArchipelagoConf struct and use the relevant fields as individual
arguments.
- Remove ArchipelagoCB struct and use ArchipelagoAIOCB instead.
- Remove ArchipelagoThread struct and move relevant fields to
ArchipelagoAIOCB instead. Now an I/O thread is spawned for per-device to
handle all async I/O requests.
- Remove double data copy, use qemu_iovec_from_buf() and copy data directly
to the destination buffer.
- Remove archipelago_aio_bh_cb() function, a full request is completed in
qemu_archipelago_complete_aio() instead.
- Resolve proposed changes from Kevin Wolf and miscellaneous style issues.
Chrysostomos Nanakos (5):
block: Support Archipelago as a QEMU block backend
block/archipelago: Implement bdrv_parse_filename()
block/archipelago: Add support for creating images
QMP: Add support for Archipelago
qemu-iotests: add support for Archipelago protocol
MAINTAINERS | 6 +
block/Makefile.objs | 2 +
block/archipelago.c | 1064 ++++++++++++++++++++++++++++++++++++++++++
configure | 40 ++
qapi/block-core.json | 38 +-
tests/qemu-iotests/common | 6 +
tests/qemu-iotests/common.rc | 9 +-
7 files changed, 1161 insertions(+), 4 deletions(-)
create mode 100644 block/archipelago.c
--
1.7.10.4
next reply other threads:[~2014-07-23 14:09 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-23 14:07 Chrysostomos Nanakos [this message]
2014-07-23 14:07 ` [Qemu-devel] [PATCH v7 1/5] block: Support Archipelago as a QEMU block backend Chrysostomos Nanakos
2014-08-04 14:35 ` [Qemu-devel] [PATCH v8 " Chrysostomos Nanakos
2014-08-05 8:20 ` Stefan Hajnoczi
2014-08-05 8:50 ` Kevin Wolf
2014-07-23 14:07 ` [Qemu-devel] [PATCH v7 2/5] block/archipelago: Implement bdrv_parse_filename() Chrysostomos Nanakos
2014-07-23 14:07 ` [Qemu-devel] [PATCH v7 3/5] block/archipelago: Add support for creating images Chrysostomos Nanakos
2014-07-23 14:07 ` [Qemu-devel] [PATCH v7 4/5] QMP: Add support for Archipelago Chrysostomos Nanakos
2014-07-30 16:33 ` Eric Blake
2014-07-23 14:07 ` [Qemu-devel] [PATCH v7 5/5] qemu-iotests: add support for Archipelago protocol Chrysostomos Nanakos
2014-07-30 15:58 ` [Qemu-devel] [PATCH v7 0/5] Support Archipelago as a QEMU block backend Stefan Hajnoczi
2014-07-30 17:59 ` [Qemu-devel] [PATCH v8 4/5] QMP: Add support for Archipelago Chrysostomos Nanakos
2014-07-31 9:42 ` Stefan Hajnoczi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1406124453-12226-1-git-send-email-cnanakos@grnet.gr \
--to=cnanakos@grnet.gr \
--cc=kwolf@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).