From: Kevin Wolf <kwolf@redhat.com>
To: qemu-block@nongnu.org
Cc: kwolf@redhat.com, pbonzini@redhat.com, eblake@redhat.com,
stefanha@redhat.com, qemu-devel@nongnu.org
Subject: [Qemu-devel] [PATCH v2 00/31] qed: Convert to coroutines
Date: Fri, 16 Jun 2017 19:36:45 +0200 [thread overview]
Message-ID: <1497634636-20230-1-git-send-email-kwolf@redhat.com> (raw)
The qed block driver is one of the last remaining block drivers that use the
AIO callback style interfaces. This series converts it to the coroutine model
that other drivers are using and removes some AIO functions from the block
layer API afterwards.
If this isn't compelling enough, the diffstat should speak for itself.
This series is relatively long, but it consists mostly of mechanical
conversions of one function per patch, so it should be easy to review.
v2:
- Add coroutine_fn markers [Stefan, Paolo]
- Use bdrv_co_*() instead of bdrv_*() in coroutine_fns
- Use ACB on stack in qed_co_request [Paolo]
- Updated some comments [Paolo]
- Unplug earlier in qed_clear_need_check() [Stefan]
- Removed now unused trace events [Stefan]
- Improved commit message of patch creating qed_aio_write_cow() [Eric]
Kevin Wolf (31):
qed: Use bottom half to resume waiting requests
qed: Make qed_read_table() synchronous
qed: Remove callback from qed_read_table()
qed: Remove callback from qed_read_l2_table()
qed: Remove callback from qed_find_cluster()
qed: Make qed_read_backing_file() synchronous
qed: Make qed_copy_from_backing_file() synchronous
qed: Remove callback from qed_copy_from_backing_file()
qed: Make qed_write_header() synchronous
qed: Remove callback from qed_write_header()
qed: Make qed_write_table() synchronous
qed: Remove GenericCB
qed: Remove callback from qed_write_table()
qed: Make qed_aio_read_data() synchronous
qed: Make qed_aio_write_main() synchronous
qed: Inline qed_commit_l2_update()
qed: Add return value to qed_aio_write_l1_update()
qed: Add return value to qed_aio_write_l2_update()
qed: Add return value to qed_aio_write_main()
qed: Add return value to qed_aio_write_cow()
qed: Add return value to qed_aio_write_inplace/alloc()
qed: Add return value to qed_aio_read/write_data()
qed: Remove ret argument from qed_aio_next_io()
qed: Remove recursion in qed_aio_next_io()
qed: Implement .bdrv_co_readv/writev
qed: Use CoQueue for serialising allocations
qed: Simplify request handling
qed: Use a coroutine for need_check_timer
qed: Add coroutine_fn to I/O path functions
qed: Use bdrv_co_* for coroutine_fns
block: Remove bdrv_aio_readv/writev/flush()
block/Makefile.objs | 2 +-
block/io.c | 171 -----------
block/qed-cluster.c | 124 ++++----
block/qed-gencb.c | 33 ---
block/qed-table.c | 261 ++++++-----------
block/qed.c | 773 +++++++++++++++++++-------------------------------
block/qed.h | 54 +---
block/trace-events | 3 -
include/block/block.h | 8 -
9 files changed, 438 insertions(+), 991 deletions(-)
delete mode 100644 block/qed-gencb.c
--
1.8.3.1
next reply other threads:[~2017-06-16 17:37 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-16 17:36 Kevin Wolf [this message]
2017-06-16 17:36 ` [Qemu-devel] [PATCH v2 01/31] qed: Use bottom half to resume waiting requests Kevin Wolf
2017-06-16 17:36 ` [Qemu-devel] [PATCH v2 02/31] qed: Make qed_read_table() synchronous Kevin Wolf
2017-06-16 17:36 ` [Qemu-devel] [PATCH v2 03/31] qed: Remove callback from qed_read_table() Kevin Wolf
2017-06-16 17:36 ` [Qemu-devel] [PATCH v2 04/31] qed: Remove callback from qed_read_l2_table() Kevin Wolf
2017-06-16 17:36 ` [Qemu-devel] [PATCH v2 05/31] qed: Remove callback from qed_find_cluster() Kevin Wolf
2017-06-16 17:36 ` [Qemu-devel] [PATCH v2 06/31] qed: Make qed_read_backing_file() synchronous Kevin Wolf
2017-06-16 17:36 ` [Qemu-devel] [PATCH v2 07/31] qed: Make qed_copy_from_backing_file() synchronous Kevin Wolf
2017-06-16 17:36 ` [Qemu-devel] [PATCH v2 08/31] qed: Remove callback from qed_copy_from_backing_file() Kevin Wolf
2017-06-16 17:36 ` [Qemu-devel] [PATCH v2 09/31] qed: Make qed_write_header() synchronous Kevin Wolf
2017-06-16 17:36 ` [Qemu-devel] [PATCH v2 10/31] qed: Remove callback from qed_write_header() Kevin Wolf
2017-06-16 17:36 ` [Qemu-devel] [PATCH v2 11/31] qed: Make qed_write_table() synchronous Kevin Wolf
2017-06-16 17:36 ` [Qemu-devel] [PATCH v2 12/31] qed: Remove GenericCB Kevin Wolf
2017-06-16 17:36 ` [Qemu-devel] [PATCH v2 13/31] qed: Remove callback from qed_write_table() Kevin Wolf
2017-06-16 17:36 ` [Qemu-devel] [PATCH v2 14/31] qed: Make qed_aio_read_data() synchronous Kevin Wolf
2017-06-16 17:37 ` [Qemu-devel] [PATCH v2 15/31] qed: Make qed_aio_write_main() synchronous Kevin Wolf
2017-06-16 17:37 ` [Qemu-devel] [PATCH v2 16/31] qed: Inline qed_commit_l2_update() Kevin Wolf
2017-06-16 17:37 ` [Qemu-devel] [PATCH v2 17/31] qed: Add return value to qed_aio_write_l1_update() Kevin Wolf
2017-06-16 17:37 ` [Qemu-devel] [PATCH v2 18/31] qed: Add return value to qed_aio_write_l2_update() Kevin Wolf
2017-06-16 17:37 ` [Qemu-devel] [PATCH v2 19/31] qed: Add return value to qed_aio_write_main() Kevin Wolf
2017-06-16 17:37 ` [Qemu-devel] [PATCH v2 20/31] qed: Add return value to qed_aio_write_cow() Kevin Wolf
2017-06-16 17:37 ` [Qemu-devel] [PATCH v2 21/31] qed: Add return value to qed_aio_write_inplace/alloc() Kevin Wolf
2017-06-16 17:37 ` [Qemu-devel] [PATCH v2 22/31] qed: Add return value to qed_aio_read/write_data() Kevin Wolf
2017-06-16 17:37 ` [Qemu-devel] [PATCH v2 23/31] qed: Remove ret argument from qed_aio_next_io() Kevin Wolf
2017-06-16 17:37 ` [Qemu-devel] [PATCH v2 24/31] qed: Remove recursion in qed_aio_next_io() Kevin Wolf
2017-06-16 17:37 ` [Qemu-devel] [PATCH v2 25/31] qed: Implement .bdrv_co_readv/writev Kevin Wolf
2017-06-17 11:36 ` [Qemu-devel] [Qemu-block] " Manos Pitsidianakis
2017-06-16 17:37 ` [Qemu-devel] [PATCH v2 26/31] qed: Use CoQueue for serialising allocations Kevin Wolf
2017-06-16 17:37 ` [Qemu-devel] [PATCH v2 27/31] qed: Simplify request handling Kevin Wolf
2017-06-16 17:37 ` [Qemu-devel] [PATCH v2 28/31] qed: Use a coroutine for need_check_timer Kevin Wolf
2017-06-16 17:37 ` [Qemu-devel] [PATCH v2 29/31] qed: Add coroutine_fn to I/O path functions Kevin Wolf
2017-06-16 17:37 ` [Qemu-devel] [PATCH v2 30/31] qed: Use bdrv_co_* for coroutine_fns Kevin Wolf
2017-06-17 11:41 ` [Qemu-devel] [Qemu-block] " Manos Pitsidianakis
2017-06-16 17:37 ` [Qemu-devel] [PATCH v2 31/31] block: Remove bdrv_aio_readv/writev/flush() Kevin Wolf
2017-06-19 15:24 ` [Qemu-devel] [PATCH v2 00/31] qed: Convert to coroutines Stefan Hajnoczi
2017-06-22 16:58 ` Kevin Wolf
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=1497634636-20230-1-git-send-email-kwolf@redhat.com \
--to=kwolf@redhat.com \
--cc=eblake@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-block@nongnu.org \
--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).