From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41990) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XCWGl-0001oI-Gt for qemu-devel@nongnu.org; Wed, 30 Jul 2014 11:58:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XCWGg-0000F6-1O for qemu-devel@nongnu.org; Wed, 30 Jul 2014 11:58:23 -0400 Received: from mail-wi0-x22f.google.com ([2a00:1450:400c:c05::22f]:38361) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XCWGf-0000Ez-NH for qemu-devel@nongnu.org; Wed, 30 Jul 2014 11:58:17 -0400 Received: by mail-wi0-f175.google.com with SMTP id ho1so7805000wib.8 for ; Wed, 30 Jul 2014 08:58:16 -0700 (PDT) Date: Wed, 30 Jul 2014 16:58:13 +0100 From: Stefan Hajnoczi Message-ID: <20140730155813.GM597@stefanha-thinkpad.redhat.com> References: <1406124453-12226-1-git-send-email-cnanakos@grnet.gr> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="P9KQiUGMzYCFwWCN" Content-Disposition: inline In-Reply-To: <1406124453-12226-1-git-send-email-cnanakos@grnet.gr> Subject: Re: [Qemu-devel] [PATCH v7 0/5] Support Archipelago as a QEMU block backend List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Chrysostomos Nanakos Cc: kwolf@redhat.com, qemu-devel@nongnu.org, stefanha@redhat.com --P9KQiUGMzYCFwWCN Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Jul 23, 2014 at 05:07:28PM +0300, Chrysostomos Nanakos wrote: > v7: > - Fix coding style issues. > - Rename __archipelago_submit_request function to archipelago_submit_req= uest. > - 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 conce= rning > QEMU Archipelago support. > - Convert qemu_aio_wait() to aio_poll(). > - Remove qemu_blockalign() and memcpy() call and use qemu_iovec_to_buf() > directly. >=20 > v6: > - Split v5 1/4 patch into two different patches. First one implements > QMP structured options and the second one implements bdrv_parse_filena= me(). >=20 > v5: > - Remove useless qemu_aio_count variable from BDRVArchipelagoState struc= t. > - Cleanup xseg signal descriptor, call xseg_quit_local_signal() when clo= sing > 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 >=20 > 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 ref= actor > qemu_archipelago_create function. >=20 > 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. >=20 > v2: > - Implement .bdrv_parse_filename() function to convert the shortuct vers= ion > with a single string to the individual options. > - Remove global variables and move relevant fields to ArchipelagoAIOCB s= truct. > - 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 direc= tly > 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 issue= s. >=20 > 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 >=20 > 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 Thanks, applied to my block-next tree: https://github.com/stefanha/qemu/commits/block-next Stefan --P9KQiUGMzYCFwWCN Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAEBAgAGBQJT2RYVAAoJEJykq7OBq3PIiQ0IAIQyhHuaoMkWHBMJsXnG+V+D S/zJDSZDm0E/7ZHJsxCS9gqrMvTWQHdiLdLiWY7sxc2/sws5KQhJ0KUX69/jqhzJ P5dxL4vcT7T6QIeOBY8uQXSILCtlDnk5xVBjtmjnoDD/6faPS0QQR6qhkfEf7PiN hUWHKXYguPrhfFAuPd/1KVq/JrL6DfToiUhrlm6TKxnVZ41g/XV5pSIwHik92c22 TtegUdov2/CgsqTwF6Ar89LrvznMj6EaZL/sbs4UqDtJs4LxVZ/vLb8ZmnMK2dBW ELbyHGNkLDF29o1IFPuBEGdlYUL5jWrgMF5TmjWS3wNvc+zBQc5a4rllhUbA5kE= =VL+f -----END PGP SIGNATURE----- --P9KQiUGMzYCFwWCN--