4 ms·
Microsoft implemented I/O rings in an update to Windows 10 with some differences and it is largely a copy-and-paste of io_uring. It's important to note that th
by p_ing 2y ago
Microsoft implemented I/O rings in an update to Windows 10 with some differences and it is largely a copy-and-paste of io_uring.
It's important to note that the NT kernel was built to leverage async I/O throughout. It was part of the original design documents and not an after-thought.
https://learn.microsoft.com/en-us/windows/win32/api/ioringapi/ https://learn.microsoft.com/en-us/windows/win32/api/ioringap...
https://windows-internals.com/i-o-rings-when-one-i-o-operation-is-not-enough/ https://windows-internals.com/i-o-rings-when-one-i-o-operati...
https://windows-internals.com/ioring-vs-io_uring-a-comparison-of-windows-and-linux-implementations/ https://windows-internals.com/ioring-vs-io_uring-a-compariso...
https://www.cs.fsu.edu/~zwang/files/cop4610/Fall2016/windows.pdf https://www.cs.fsu.edu/~zwang/files/cop4610/Fall2016/windows...
- muststopmyths 2y agoWinsock Registered I/O or RIO predates io_uring and you could make the argument that io_uring "is largely a copy-paste of RIO" if you wanted to be childish. The truth is that they both use a obvious pattern of high-performance data transfer that's been around a long time. As I said, NVME devices have been doing that for a while and it's a common paradigm in any DMA-based transfer. io_uring seems more expansive and hence useful compared to the limited scope of RIO or even the NtIoRing stuff.
- p_ing 2y ago> io_uring "is largely a copy-paste of RIO" if you wanted to be childish. This was unnecessary. I'm not denigrating I/O Rings or io_uring. The NT kernel is more advanced than the Linux/BSD/macOS kernels in certain ways. There should be a back-and-forth copying of the good ideas/implementations.
- muststopmyths 2y agoI misunderstood. apologies.