Now that io_uring will be in the upcoming 5.1 kernel, I spent some time writing up how it came to be and how it works. More formats likely coming, and I expect a few revisions too. For now, consider this v1.0 of the doc: http://kernel.dk/io_uring.pdf
-
Show this thread
-
Do let me know if you have any comments. Anything from "you spelled this word wrong" to "I wish it included X" would be appreciated.
7 replies 0 retweets 2 likesShow this thread -
Replying to @axboe
It'd be cool if you could include a bit more about f[data]sync (synchronicity, guarantees). Lots of users of the facility are going to need it... Plan to play around with optionally using this in postgres in the next few months.
3 replies 0 retweets 1 like -
Replying to @AndresFreundTec
Agree, that would be useful. One thing I've been pondering is a barrier type command. Right now you can queue an fsync after a bunch of writes, but ordering is not guaranteed. It'd be nifty to have explicit ordering be possible for that, fsync not issued before pending writes.
1 reply 0 retweets 2 likes -
Replying to @axboe
Yea, that'd really be useful. Requiring a userspace 'queue drain' at that point seems a) unnecessarily slow b) failure prone.
1 reply 0 retweets 0 likes -
Replying to @AndresFreundTec
It runs counter to what the API is trying to achieve, having applications needing to care about those kinds of details. And it's non-trivial. I'll dust off the barrier implementation and provide an IORING_FSYNC_BARRIER flag for that use case.
1 reply 0 retweets 1 like -
Replying to @axboe @AndresFreundTec
OK done, now I just need to test it. Almost not worth the time, I'm sure it's perfect. Yeah.
1 reply 0 retweets 3 likes -
Replying to @axboe
Agree, it's durability, who cares. Which git tree will this appear in first? Just curious to skim through it.
1 reply 0 retweets 0 likes -
Replying to @AndresFreundTec
Once I get a chance to test it, I'll push out a patch to my io_uring-next branch. I'll let you know, if you want to check/test. Might not be until Monday, time to shut it down for the weekend...
1 reply 1 retweet 1 like
Cool. Sunday is postgres' equivalent to the end of the merge window - except that we have yearly releases. So I'm not going to play with anything until that's done, and then I'm going to sleep for 24h :P. I'll probably play around it later next week though. Have fun!
-
-
Replying to @AndresFreundTec
OK, found 30 min to do it. Here's the commit adding the IORING_FSYNC_BARRIER support: http://git.kernel.dk/cgit/linux-block/commit/?h=io_uring-next&id=9e66cf61a1e6082418f538c66620e6f037bc7994 … and here's one adding that to the test/fsync testcase in liburing: http://git.kernel.dk/cgit/liburing/commit/?id=61c27f73f8897bb65b2d52942011e4db5306d87a … Go forth and test.
0 replies 0 retweets 2 likesThanks. Twitter will use this to make your timeline better. UndoUndo
-
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.