Pekka Enberg
01671d1d1e
Merge 'Performance improvements for Unix I/O backend' from Preston Thorpe
...
This PR reworks the unix I/O backend, removing runtime reference
counting/borrow checking and optimizing away the hashmap in favor of a
static array, with an unlikely fallback vec.
The only reason the fallback vec is there is because unlike the
`io_uring` module, we cannot simply index into the array with the fd as
the OS could theoretically give us a fd up to I believe 1024 so keeping
an array of that size for a few elements is unnecessary.
Closes #940
2025-02-12 09:29:41 +02:00
PThorpe92
9098237a12
Add as_read method to completion enum
2025-02-11 09:09:47 -05:00
Doug Anderson444
0aa5de6d9f
rm log, switch all to tracing
2025-02-11 09:03:36 -04:00
PThorpe92
75898027a0
Remove unnecessary reference counting from completion io callbacks
2025-02-08 08:20:19 -05:00
PThorpe92
575a524d04
Replace hashmap for io_uring pending ops with static array
2025-02-07 09:05:08 -05:00
Jorge López
55e06b0c72
core/io: make file locks non-blocking so they fail right away
2025-01-14 11:01:11 +01:00
Pekka Enberg
5c9505e8f7
Revert "core/io/io_uring: replace nix and libc calls with their rustix counterparts."
...
This reverts commit b146f5d4cb because it
causes tests to hang.
2025-01-14 10:25:23 +02:00
Jorge López
5e9cb58f04
core/io/io_uring: remove unnecessary path prefix for log macros, and replace one unwrap with ?
2025-01-13 20:21:37 +01:00
Jorge López
b146f5d4cb
core/io/io_uring: replace nix and libc calls with their rustix counterparts.
...
core: remove dependency on nix. We keep depending on libc, though, because crate io_uring requires libc's iovec.
2025-01-13 20:21:37 +01:00
Jorge López
7808665c92
core: make MAX_IOVECS u32 instead of usize, to match the type expected by io_uring
2025-01-13 20:21:37 +01:00
Jorge López
5a45df84db
core: add debug line when an IO backend is created. A user can check that the correct one has been selected.
2025-01-11 16:08:41 +01:00
Jorge López
511c0b495d
Rename LinuxIOError to UringIOError to match the IO backend renames
2025-01-07 15:19:31 +01:00
Jorge López
e5a12bdf01
Rename linux backend to io_uring and darwin to unix. Add new feature flag to IO backend selection
2025-01-07 15:19:29 +01:00
Pekka Enberg
58eab38066
I/O layer cleanups
2023-09-10 21:02:23 +03:00
Pekka Enberg
72e92820d6
Share I/O ring across multiple files
2023-09-10 20:57:54 +03:00
Pekka Enberg
60abb68cef
io_uring support
2023-09-09 12:36:54 +03:00