←back to thread

lsr: ls with io_uring

(rockorager.dev)
335 points mpweiher | 2 comments | | HN request time: 0.022s | source
Show context
SillyUsername ◴[] No.44604307[source]
Love it.

I'm trying to understand why all command line tools don't use io_uring.

As an example, all my nvme's on usb 3.2 gen 2 only reach 740MB/s peak.

If I use tools with aio or io_uring I get 1005MB/s.

I know I may not be copying many files simultaneously every time, but the queue length strategies and the fewer locks also help I guess.

replies(9): >>44604401 #>>44604434 #>>44604490 #>>44604735 #>>44604738 #>>44604905 #>>44605976 #>>44607467 #>>44608653 #
Thaxll ◴[] No.44604905[source]
io_uring is a security nightmare.
replies(2): >>44604952 #>>44608476 #
pjc50 ◴[] No.44604952[source]
How so?
replies(3): >>44605001 #>>44605028 #>>44608441 #
sim7c00 ◴[] No.44605028{3}[source]
you give process direct access to a piece of kernel memory. its a reason why there is separation. thats all.
replies(3): >>44605444 #>>44605743 #>>44606164 #
1. duped ◴[] No.44606164{4}[source]
...don't you supply the memory in the submission queue? or do you mean the queues themselves?
replies(1): >>44611437 #
2. LAC-Tech ◴[] No.44611437[source]
The memory for the submission queue is mmapd into user space. Easiest implementation to read is the Zig stdlib:

https://github.com/ziglang/zig/blob/69cf40da600224734d39c6f6...