All of lore.kernel.org
 help / color / mirror / Atom feed
From: Fam Zheng <famz@redhat.com>
To: qemu-devel@nongnu.org
Cc: Peter Maydell <peter.maydell@linaro.org>, famz@redhat.com
Subject: [Qemu-devel] [PULL 05/11] async: Introduce aio_co_enter
Date: Tue, 11 Apr 2017 20:26:26 +0800	[thread overview]
Message-ID: <20170411122632.14050-6-famz@redhat.com> (raw)
In-Reply-To: <20170411122632.14050-1-famz@redhat.com>

They start the coroutine on the specified context.

Signed-off-by: Fam Zheng <famz@redhat.com>
Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
---
 include/block/aio.h | 9 +++++++++
 util/async.c        | 7 ++++++-
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/include/block/aio.h b/include/block/aio.h
index 677b6ff..406e323 100644
--- a/include/block/aio.h
+++ b/include/block/aio.h
@@ -511,6 +511,15 @@ void aio_co_schedule(AioContext *ctx, struct Coroutine *co);
 void aio_co_wake(struct Coroutine *co);
 
 /**
+ * aio_co_enter:
+ * @ctx: the context to run the coroutine
+ * @co: the coroutine to run
+ *
+ * Enter a coroutine in the specified AioContext.
+ */
+void aio_co_enter(AioContext *ctx, struct Coroutine *co);
+
+/**
  * Return the AioContext whose event loop runs in the current thread.
  *
  * If called from an IOThread this will be the IOThread's AioContext.  If
diff --git a/util/async.c b/util/async.c
index 663e297..355af73 100644
--- a/util/async.c
+++ b/util/async.c
@@ -453,6 +453,11 @@ void aio_co_wake(struct Coroutine *co)
     smp_read_barrier_depends();
     ctx = atomic_read(&co->ctx);
 
+    aio_co_enter(ctx, co);
+}
+
+void aio_co_enter(AioContext *ctx, struct Coroutine *co)
+{
     if (ctx != qemu_get_current_aio_context()) {
         aio_co_schedule(ctx, co);
         return;
@@ -464,7 +469,7 @@ void aio_co_wake(struct Coroutine *co)
         QSIMPLEQ_INSERT_TAIL(&self->co_queue_wakeup, co, co_queue_next);
     } else {
         aio_context_acquire(ctx);
-        qemu_coroutine_enter(co);
+        qemu_aio_coroutine_enter(ctx, co);
         aio_context_release(ctx);
     }
 }
-- 
2.9.3

  parent reply	other threads:[~2017-04-11 12:26 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-11 12:26 [Qemu-devel] [PULL 00/11] Block patches for 2.9-rc4 Fam Zheng
2017-04-11 12:26 ` [Qemu-devel] [PULL 01/11] block: Make bdrv_parent_drained_begin/end public Fam Zheng
2017-04-11 12:26 ` [Qemu-devel] [PULL 02/11] block: Quiesce old aio context during bdrv_set_aio_context Fam Zheng
2017-04-11 12:26 ` [Qemu-devel] [PULL 03/11] tests/block-job-txn: Don't start block job before adding to txn Fam Zheng
2017-04-11 12:26 ` [Qemu-devel] [PULL 04/11] coroutine: Extract qemu_aio_coroutine_enter Fam Zheng
2017-04-11 12:26 ` Fam Zheng [this message]
2017-04-11 12:26 ` [Qemu-devel] [PULL 06/11] block: Introduce bdrv_coroutine_enter Fam Zheng
2017-04-11 12:26 ` [Qemu-devel] [PULL 07/11] blockjob: Use bdrv_coroutine_enter to start coroutine Fam Zheng
2017-04-11 12:26 ` [Qemu-devel] [PULL 08/11] qemu-io-cmds: Use bdrv_coroutine_enter Fam Zheng
2017-04-11 12:26 ` [Qemu-devel] [PULL 09/11] block: Use bdrv_coroutine_enter to start I/O coroutines Fam Zheng
2017-04-11 12:26 ` [Qemu-devel] [PULL 10/11] block: Fix bdrv_co_flush early return Fam Zheng
2017-04-25 15:00   ` Peter Maydell
2017-04-26  0:19     ` Fam Zheng
2017-04-11 12:26 ` [Qemu-devel] [PULL 11/11] sheepdog: Use bdrv_coroutine_enter before BDRV_POLL_WHILE Fam Zheng
2017-04-11 13:17 ` [Qemu-devel] [PULL 00/11] Block patches for 2.9-rc4 Peter Maydell

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=20170411122632.14050-6-famz@redhat.com \
    --to=famz@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.