-
Notifications
You must be signed in to change notification settings - Fork 130
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
How to use io_uring engine if kernel not support io_uring_prep_poll_multishot? #726
Comments
iouring's multi-shot poll is not mandatory, one-shot poll also has similar performance. Looks like you are using the |
The problem we encountered is similar to the problem solved in #264. When initing |
So I believe there is a misunderstanding here, maybe caused by the function naming? We use If you need to suspend the |
When i use workerpool‘s |
Alright, I see. BTW, the init error message as well. |
kernel version is 5.10, liburing version is 2.4. PhotonlibOS version is 0.8.2. Is there any alternative if not using io_uring_prep_poll_multishot |
I'm afraid not. This is just the bug described in https://github.com/alibaba/PhotonLibOS/pull/264/files#r1398418634. It used to be a one-shot poll + while loop, and the fix was
|
PhotonLibOS/io/iouring-wrapper.cpp Lines 399 to 402 in 1ee55db
PhotonLibOS/io/iouring-wrapper.cpp Lines 437 to 442 in 1ee55db
I'm thinking about not using We can even use blocking |
Using However, if using a one-shot poll without employing a while loop, but instead in the reap loop, when receiving the poll's CQE, can we manually re-submit a one-shot poll SQE again? After testing, it was found that above approach can solve my problem. However, under the current version, it is still necessary to restrict the required kernel version for using iouringEngine, as |
@MJY-HUST I'll make a formal patch for kernel less than 5.13, based on your contribution code. |
@MJY-HUST Were you using a customized kernel rather than official one from upstream vendor? My test machines is debian 11 with kernel 5.10.0-30-amd64, and multi-shot poll is still working. ![]() |
If the kernel version does not support
io_uring_prep_poll_multishot
, are there any alternative ways to use the io_uring engine?The text was updated successfully, but these errors were encountered: