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
Feature request: support fds that have no {read,write}_iter support #12
Comments
Agree, and it should not be hard, only issue is that we always have to punt to async for handling non iter based operations. Five min hack, haven't tested it yet:
|
Posted it here: https://lore.kernel.org/linux-block/6e9531fe-9047-7005-4625-652490419cc3@kernel.dk/ and here's a test case as well: http://git.kernel.dk/cgit/liburing/commit/?id=556960942eaa69fd53544932f00db3fa9f196e00 If you get a chance to test it, please reply back to the original email above with an acknowledgement. |
That was GREAT! io_uring is getting more feature complete then ever! Thanks for you quick patch! But sorry, I have no idea how to build the kernel, and have to wait for a distro. |
Thanks for prodding me about these issues! Don't worry about not being able to test it, I ran it through some testing here, seems good to me. |
There is no way to know whether a file descriptor support
{read,write}_iter
, and sometimes we don't even know the type of fds, for exampleSTDIN/OUT/ERR_FILENO
. We have to tryIORING_OP_PREADV
first. If we get-EINVAL
, we have to fall back toIORING_OP_POLL_ADD
and plain read, which is inconvenient and slow.Ref: libuv/libuv#2322 (comment)
The text was updated successfully, but these errors were encountered: