io_uring/cmd: inline io_uring_cmd_do_in_task_lazy
Now as we can easily include io_uring_types.h, move IOU_F_TWQ_LAZY_WAKE and inline io_uring_cmd_do_in_task_lazy(). Signed-off-by: Pavel Begunkov <asml.silence@gmail.com> Reviewed-by: Ming Lei <ming.lei@redhat.com> Link: https://lore.kernel.org/r/2ec9fb31dd192d1c5cf26d0a2dec5657d88a8e48.1701391955.git.asml.silence@gmail.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
committed by
Jens Axboe
parent
b66509b849
commit
6b04a37370
@@ -36,15 +36,6 @@ void io_uring_cmd_done(struct io_uring_cmd *cmd, ssize_t ret, ssize_t res2,
|
|||||||
void __io_uring_cmd_do_in_task(struct io_uring_cmd *ioucmd,
|
void __io_uring_cmd_do_in_task(struct io_uring_cmd *ioucmd,
|
||||||
void (*task_work_cb)(struct io_uring_cmd *, unsigned),
|
void (*task_work_cb)(struct io_uring_cmd *, unsigned),
|
||||||
unsigned flags);
|
unsigned flags);
|
||||||
/* users should follow semantics of IOU_F_TWQ_LAZY_WAKE */
|
|
||||||
void io_uring_cmd_do_in_task_lazy(struct io_uring_cmd *ioucmd,
|
|
||||||
void (*task_work_cb)(struct io_uring_cmd *, unsigned));
|
|
||||||
|
|
||||||
static inline void io_uring_cmd_complete_in_task(struct io_uring_cmd *ioucmd,
|
|
||||||
void (*task_work_cb)(struct io_uring_cmd *, unsigned))
|
|
||||||
{
|
|
||||||
__io_uring_cmd_do_in_task(ioucmd, task_work_cb, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
void io_uring_cmd_mark_cancelable(struct io_uring_cmd *cmd,
|
void io_uring_cmd_mark_cancelable(struct io_uring_cmd *cmd,
|
||||||
unsigned int issue_flags);
|
unsigned int issue_flags);
|
||||||
@@ -60,12 +51,9 @@ static inline void io_uring_cmd_done(struct io_uring_cmd *cmd, ssize_t ret,
|
|||||||
ssize_t ret2, unsigned issue_flags)
|
ssize_t ret2, unsigned issue_flags)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
static inline void io_uring_cmd_complete_in_task(struct io_uring_cmd *ioucmd,
|
static inline void __io_uring_cmd_do_in_task(struct io_uring_cmd *ioucmd,
|
||||||
void (*task_work_cb)(struct io_uring_cmd *, unsigned))
|
void (*task_work_cb)(struct io_uring_cmd *, unsigned),
|
||||||
{
|
unsigned flags)
|
||||||
}
|
|
||||||
static inline void io_uring_cmd_do_in_task_lazy(struct io_uring_cmd *ioucmd,
|
|
||||||
void (*task_work_cb)(struct io_uring_cmd *, unsigned))
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
static inline void io_uring_cmd_mark_cancelable(struct io_uring_cmd *cmd,
|
static inline void io_uring_cmd_mark_cancelable(struct io_uring_cmd *cmd,
|
||||||
@@ -78,4 +66,17 @@ static inline struct task_struct *io_uring_cmd_get_task(struct io_uring_cmd *cmd
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* users must follow the IOU_F_TWQ_LAZY_WAKE semantics */
|
||||||
|
static inline void io_uring_cmd_do_in_task_lazy(struct io_uring_cmd *ioucmd,
|
||||||
|
void (*task_work_cb)(struct io_uring_cmd *, unsigned))
|
||||||
|
{
|
||||||
|
__io_uring_cmd_do_in_task(ioucmd, task_work_cb, IOU_F_TWQ_LAZY_WAKE);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void io_uring_cmd_complete_in_task(struct io_uring_cmd *ioucmd,
|
||||||
|
void (*task_work_cb)(struct io_uring_cmd *, unsigned))
|
||||||
|
{
|
||||||
|
__io_uring_cmd_do_in_task(ioucmd, task_work_cb, 0);
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* _LINUX_IO_URING_CMD_H */
|
#endif /* _LINUX_IO_URING_CMD_H */
|
||||||
|
|||||||
@@ -7,6 +7,17 @@
|
|||||||
#include <linux/llist.h>
|
#include <linux/llist.h>
|
||||||
#include <uapi/linux/io_uring.h>
|
#include <uapi/linux/io_uring.h>
|
||||||
|
|
||||||
|
enum {
|
||||||
|
/*
|
||||||
|
* A hint to not wake right away but delay until there are enough of
|
||||||
|
* tw's queued to match the number of CQEs the task is waiting for.
|
||||||
|
*
|
||||||
|
* Must not be used wirh requests generating more than one CQE.
|
||||||
|
* It's also ignored unless IORING_SETUP_DEFER_TASKRUN is set.
|
||||||
|
*/
|
||||||
|
IOU_F_TWQ_LAZY_WAKE = 1,
|
||||||
|
};
|
||||||
|
|
||||||
enum io_uring_cmd_flags {
|
enum io_uring_cmd_flags {
|
||||||
IO_URING_F_COMPLETE_DEFER = 1,
|
IO_URING_F_COMPLETE_DEFER = 1,
|
||||||
IO_URING_F_UNLOCKED = 2,
|
IO_URING_F_UNLOCKED = 2,
|
||||||
|
|||||||
@@ -15,16 +15,6 @@
|
|||||||
#include <trace/events/io_uring.h>
|
#include <trace/events/io_uring.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
enum {
|
|
||||||
/*
|
|
||||||
* A hint to not wake right away but delay until there are enough of
|
|
||||||
* tw's queued to match the number of CQEs the task is waiting for.
|
|
||||||
*
|
|
||||||
* Must not be used wirh requests generating more than one CQE.
|
|
||||||
* It's also ignored unless IORING_SETUP_DEFER_TASKRUN is set.
|
|
||||||
*/
|
|
||||||
IOU_F_TWQ_LAZY_WAKE = 1,
|
|
||||||
};
|
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
IOU_OK = 0,
|
IOU_OK = 0,
|
||||||
|
|||||||
@@ -78,13 +78,6 @@ void __io_uring_cmd_do_in_task(struct io_uring_cmd *ioucmd,
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(__io_uring_cmd_do_in_task);
|
EXPORT_SYMBOL_GPL(__io_uring_cmd_do_in_task);
|
||||||
|
|
||||||
void io_uring_cmd_do_in_task_lazy(struct io_uring_cmd *ioucmd,
|
|
||||||
void (*task_work_cb)(struct io_uring_cmd *, unsigned))
|
|
||||||
{
|
|
||||||
__io_uring_cmd_do_in_task(ioucmd, task_work_cb, IOU_F_TWQ_LAZY_WAKE);
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL_GPL(io_uring_cmd_do_in_task_lazy);
|
|
||||||
|
|
||||||
static inline void io_req_set_cqe32_extra(struct io_kiocb *req,
|
static inline void io_req_set_cqe32_extra(struct io_kiocb *req,
|
||||||
u64 extra1, u64 extra2)
|
u64 extra1, u64 extra2)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user