When using TASKRUN-related options, how often must the application perform syscalls? #885
Closed
sharpobject
started this conversation in
General
Replies: 2 comments
-
|
If you use SQPOLL, then those options don't really apply as the SQPOLL thread using normal wakeups for notification anyway, and doesn't transition between user/kernel which would impact when task_work is run. |
Beta Was this translation helpful? Give feedback.
0 replies
-
|
Sounds great! |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hello,
I have an application that performs 0 steady-state syscalls and relies on kernel-side busy polling and userspace busy polling to talk to the world via io_uring. I have read in this handy guide to using io_uring for networking in current_year that I should consider setting some combination of IORING_SETUP_COOP_TASKRUN, IORING_SETUP_TASKRUN_FLAG, and IORING_SETUP_DEFER_TASKRUN. I think that if I use the former things, task_work will be done whenever I do any syscall, and if I use the latter thing, task_work will be done whenever I do the io_uring_enter syscall. Currently I do no syscalls, so if I would like to start using this stuff I would need to also start doing some syscalls. How often must syscalls be performed? Are these syscalls and this task_work ever in the critical path for receiving or sending bytes on already-established sockets? If so, and if this is sufficiently rare, we would sort of rather throw those sockets away and get new ones rather than do a syscall. Is there a reasonable way to do that?
Thanks
Beta Was this translation helpful? Give feedback.
All reactions