-
-
Notifications
You must be signed in to change notification settings - Fork 47
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
Sqpoll support #8
Conversation
Hey @Licenser, thanks for taking this on! One thing I was wondering about was maybe allowing various file and buffer-accepting operations to accept generic types that implement traits that trigger the flags for registered files / buffers automatically, and adding types By the way, I would quickly accept a PR that just adds the ability to register files / buffers / both, before any methods that use them exist, so we can just iterate on an API like that quickly. |
I like the idea! I'm still fighting with getting a file to register to start with once I get over that bump I think the rest will fall in place easily. I'm in no hurry to merge, there is nothing immediate I would use it for other than to see the effect in regards to #5 so I'd be happy with both flashing out a nice API or getting it merged and iterating :) |
3371daf
to
701eb5d
Compare
I rebased and added an example, but I'm somewhat stuck with this error:
The file registers successfully. The manpage states: .TP
.B IORING_REGISTER_FILES
Register files for I/O.
.I arg
contains a pointer to an array of
.I nr_args
file descriptors (signed 32 bit integers).
To make use of the registered files, the
.B IOSQE_FIXED_FILE
flag must be set in the
.I flags
member of the
.IR "struct io_uring_sqe" ,
and the
.I fd
member is set to the index of the file in the file descriptor array.
|
Traced it a bit further, seems the error above was because once a ring is created with Anyway moving things forward it seems the completion for sqpoll requests hangs here Line 97 in aae2fb6
I suspect there could be a deadlock somewhere? Is there something obvious that comes to mind? |
With some further digging - it seems that the filler is never executed ( |
I hit something similar when running this from multiple requesting threads in its usage in sled. Will dive into this in the next few days |
Thank you! I'll keep digging on my side but I think you'll have more luck ;) |
Interestingly I now get the error:
on creating the ring when |
heavy WIP, trying to add support for SQPOLL not currently working, will cleanup & squash at the end.