4 ms·
And I thought I was original for coming up with this scheme after I heard about vdsos, a year or two before io_uring became a thing :)
by moonchild 4y ago
And I thought I was original for coming up with this scheme after I heard about vdsos, a year or two before io_uring became a thing :)
- flohofwoe 4y ago3D APIs used the same idea for a long time, probably going all the way back to the mid-90's with D3D2 'execute buffers' (GL display lists are even older but just similar, they're expected to be recorded once and executed many times instead of being rebuilt each frame).
- benlwalker 4y agoAnd io_uring itself was more directly inspired by NVMe and RDMA, which of course work with these same queues as GFX cards. The original io_uring patch compares itself to SPDK, whose premise is "what if we expose an abstraction for a hardware queue per thread to an application " - basically the same programming model as io_uring. And SPDK was just taking techniques from networking (DPDK) and applying them to storage. source - I helped create SPDK.
- gavinray 4y agoThanks for SPDK, it's valuable and has a wide range of applications.
- ajross 4y agoIBM System/360 machines had programmable IO Channel processors back in the 1960's. Everything new is old. Nor is io_uring the first or only asynchronous I/O API available to Linux userspace. It's just the best.