Message ID | 20220816153728.2160601-4-dylany@fb.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | io_uring: defer task work to when it is needed | expand |
diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c index 19d5d1ab5793..53696dd90626 100644 --- a/io_uring/io_uring.c +++ b/io_uring/io_uring.c @@ -2990,8 +2990,6 @@ SYSCALL_DEFINE6(io_uring_enter, unsigned int, fd, u32, to_submit, struct fd f; long ret; - io_run_task_work(); - if (unlikely(flags & ~(IORING_ENTER_GETEVENTS | IORING_ENTER_SQ_WAKEUP | IORING_ENTER_SQ_WAIT | IORING_ENTER_EXT_ARG | IORING_ENTER_REGISTERED_RING)))
This is not needed, and it is normally better to wait for task work until after submissions. This will allow greater batching if either work arrives in the meanwhile, or if the submissions cause task work to be queued up. For SQPOLL this also no longer runs task work, but this is handled inside the SQPOLL loop anyway. For IOPOLL io_iopoll_check will run task work anyway And otherwise io_cqring_wait will run task work Suggested-by: Pavel Begunkov <asml.silence@gmail.com> Signed-off-by: Dylan Yudaken <dylany@fb.com> --- io_uring/io_uring.c | 2 -- 1 file changed, 2 deletions(-)