-
Notifications
You must be signed in to change notification settings - Fork 42
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
Use io_uring for files on linux #175
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm really glad to see this since I really wanted to try this out myself when it got into the kernel, but couldn't realistically do so due to higher priorities.
Since I can't test this locally in the current state, my only comment right now is that the integration should be optional as a separate build configuration. Once that is done, everything builds, and the white space changes and Meson build file changes are in separate commits, we could also just document it as experimental and merge it to master, so that improvements can be made in smaller incremental steps.
dub.sdl
Outdated
@@ -2,7 +2,8 @@ name "eventcore" | |||
description "Pro-actor based abstraction layer over operating system asynchronous I/O facilities." | |||
license "MIT" | |||
copyright "Copyright © 2016-2018 Sönke Ludwig" | |||
|
|||
license "MIT" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Duplicate license field
@@ -2,7 +2,8 @@ name "eventcore" | |||
description "Pro-actor based abstraction layer over operating system asynchronous I/O facilities." | |||
license "MIT" | |||
copyright "Copyright © 2016-2018 Sönke Ludwig" | |||
|
|||
license "MIT" | |||
dependency "during" version="~>0.2.1" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be in a new "uring" configuration at the bottom of the file. Is "during" a local package of yours? I don't see it on code.dlang.org.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since I can't test this locally in the current state, my only comment right now is that the integration should be optional as a separate build configuration. Once that is done, everything builds, and the white space changes and Meson build file changes are in separate commits, we could also just document it as experimental and merge it to master, so that improvements can be made in smaller incremental steps.
Great! Than I will polish it up to be suitable for master.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be in a new "uring" configuration at the bottom of the file. Is "during" a local package of yours? I don't see it on code.dlang.org.
It's https://github.com/tchaloupka/during from code.dlang.org
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
white space changes
which one?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hm it's really just two lines in utils.d, nevermind then, I thought it was more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's https://github.com/tchaloupka/during from code.dlang.org
Interesting, the search is obviously broken w.r.t. package names. Accessing it manually works, but I get zero results for "during".
956bebf
to
1b7e274
Compare
Also changes the way the internal data is organized to match the module comment of io_uring.
This is a proof of concept on how to integrate io_uring into the epoll event loop. It currently supports files, timers could be easily added (but prolly require a fork of the PosixEventLoop).
It's not production ready yet, but I want to gather some early feedback.