All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefan Roesch <shr@devkernel.io>
To: io-uring@vger.kernel.org, kernel-team@fb.com
Cc: shr@devkernel.io, axboe@kernel.dk, ammarfaizi2@gnuweeb.org,
	netdev@vger.kernel.org, kuba@kernel.org, olivier@trillion01.com
Subject: [PATCH v13 3/7] io-uring: move io_wait_queue definition to header file
Date: Thu, 18 May 2023 14:17:47 -0700	[thread overview]
Message-ID: <20230518211751.3492982-4-shr@devkernel.io> (raw)
In-Reply-To: <20230518211751.3492982-1-shr@devkernel.io>

This moves the definition of the io_wait_queue structure to the header
file so it can be also used from other files.

Signed-off-by: Stefan Roesch <shr@devkernel.io>
---
 io_uring/io_uring.c | 21 ---------------------
 io_uring/io_uring.h | 22 ++++++++++++++++++++++
 2 files changed, 22 insertions(+), 21 deletions(-)

diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c
index 3d43df8f1e4e..efbd6c9c56e5 100644
--- a/io_uring/io_uring.c
+++ b/io_uring/io_uring.c
@@ -2516,33 +2516,12 @@ int io_submit_sqes(struct io_ring_ctx *ctx, unsigned int nr)
 	return ret;
 }
 
-struct io_wait_queue {
-	struct wait_queue_entry wq;
-	struct io_ring_ctx *ctx;
-	unsigned cq_tail;
-	unsigned nr_timeouts;
-	ktime_t timeout;
-};
-
 static inline bool io_has_work(struct io_ring_ctx *ctx)
 {
 	return test_bit(IO_CHECK_CQ_OVERFLOW_BIT, &ctx->check_cq) ||
 	       !llist_empty(&ctx->work_llist);
 }
 
-static inline bool io_should_wake(struct io_wait_queue *iowq)
-{
-	struct io_ring_ctx *ctx = iowq->ctx;
-	int dist = READ_ONCE(ctx->rings->cq.tail) - (int) iowq->cq_tail;
-
-	/*
-	 * Wake up if we have enough events, or if a timeout occurred since we
-	 * started waiting. For timeouts, we always want to return to userspace,
-	 * regardless of event count.
-	 */
-	return dist >= 0 || atomic_read(&ctx->cq_timeouts) != iowq->nr_timeouts;
-}
-
 static int io_wake_function(struct wait_queue_entry *curr, unsigned int mode,
 			    int wake_flags, void *key)
 {
diff --git a/io_uring/io_uring.h b/io_uring/io_uring.h
index 259bf798a390..2fde89abd792 100644
--- a/io_uring/io_uring.h
+++ b/io_uring/io_uring.h
@@ -41,6 +41,28 @@ enum {
 	IOU_STOP_MULTISHOT	= -ECANCELED,
 };
 
+struct io_wait_queue {
+	struct wait_queue_entry wq;
+	struct io_ring_ctx *ctx;
+	unsigned cq_tail;
+	unsigned nr_timeouts;
+	ktime_t timeout;
+
+};
+
+static inline bool io_should_wake(struct io_wait_queue *iowq)
+{
+	struct io_ring_ctx *ctx = iowq->ctx;
+	int dist = READ_ONCE(ctx->rings->cq.tail) - (int) iowq->cq_tail;
+
+	/*
+	 * Wake up if we have enough events, or if a timeout occurred since we
+	 * started waiting. For timeouts, we always want to return to userspace,
+	 * regardless of event count.
+	 */
+	return dist >= 0 || atomic_read(&ctx->cq_timeouts) != iowq->nr_timeouts;
+}
+
 struct io_uring_cqe *__io_get_cqe(struct io_ring_ctx *ctx, bool overflow);
 bool io_req_cqe_overflow(struct io_kiocb *req);
 int io_run_task_work_sig(struct io_ring_ctx *ctx);
-- 
2.39.1


  parent reply	other threads:[~2023-05-18 21:34 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-18 21:17 [PATCH v13 0/7] io_uring: add napi busy polling support Stefan Roesch
2023-05-18 21:17 ` [PATCH v13 1/7] net: split off __napi_busy_poll from napi_busy_poll Stefan Roesch
2023-05-31 17:26   ` Jakub Kicinski
2023-06-05 17:47     ` Stefan Roesch
2023-06-05 18:00       ` Jakub Kicinski
     [not found]   ` <20230531103224.17a462cc@kernel.org>
2023-05-31 19:16     ` Stefan Roesch
2023-06-01  4:15       ` Jakub Kicinski
2023-06-02  4:12         ` Stefan Roesch
2023-06-02  4:26           ` Jakub Kicinski
2023-05-18 21:17 ` [PATCH v13 2/7] net: introduce napi_busy_loop_rcu() Stefan Roesch
     [not found]   ` <20230531102915.0afc570b@kernel.org>
2023-05-31 17:38     ` Jakub Kicinski
2023-06-05 17:45     ` Stefan Roesch
2023-05-18 21:17 ` Stefan Roesch [this message]
2023-05-18 21:17 ` [PATCH v13 4/7] io-uring: add napi busy poll support Stefan Roesch
2023-05-19  1:26   ` Jens Axboe
2023-05-19 23:11     ` Stefan Roesch
2023-05-19  9:53   ` Simon Horman
2023-05-19 23:17     ` Stefan Roesch
2023-05-18 21:17 ` [PATCH v13 5/7] io-uring: add sqpoll support for napi busy poll Stefan Roesch
2023-05-19  0:11   ` kernel test robot
2023-05-19  1:13     ` Jens Axboe
2023-05-19 23:29       ` Stefan Roesch
2023-05-19  4:35   ` kernel test robot
2023-05-18 21:17 ` [PATCH v13 6/7] io_uring: add register/unregister napi function Stefan Roesch
2023-05-19  1:30   ` Jens Axboe
2023-05-18 21:17 ` [PATCH v13 7/7] io_uring: add prefer busy poll to register and unregister napi api Stefan Roesch
2023-05-19  1:31 ` [PATCH v13 0/7] io_uring: add napi busy polling support Jens Axboe

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=20230518211751.3492982-4-shr@devkernel.io \
    --to=shr@devkernel.io \
    --cc=ammarfaizi2@gnuweeb.org \
    --cc=axboe@kernel.dk \
    --cc=io-uring@vger.kernel.org \
    --cc=kernel-team@fb.com \
    --cc=kuba@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=olivier@trillion01.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 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.