You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Apologies if this isn't the place to ask questions about the kernel-mode side of io_uring, but I don't know where else to ask such a question.
Is there a detailed guide somewhere on how io_uring interacts with a driver, i.e. a Linux kernel module? I've seen a couple of example drivers that implement read_iter & write_iter file_operations, but they're trivial and don't address a lot of real-world issues like cancelation, clean up, indefinite waits etc. Reading the kernel source code has helped a little, but to be honest I don't understand well enough the kernel VFS layer or the io_uring kernel implementation to draw firm conclusions.
Background: I've been implementing a PCIe endpoint driver intended for the High Performance Computing market (we want millions of zero-copy DMA IOPS if possible). During the course of that, I've come up with a few questions and concerns that I haven't been able to answer by reading kernel source code or looking at drivers that implement async. I/O.
If there is no such guide, then I don't mind starting something, e.g. a Wiki.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Dear all,
Apologies if this isn't the place to ask questions about the kernel-mode side of io_uring, but I don't know where else to ask such a question.
Is there a detailed guide somewhere on how io_uring interacts with a driver, i.e. a Linux kernel module? I've seen a couple of example drivers that implement read_iter & write_iter file_operations, but they're trivial and don't address a lot of real-world issues like cancelation, clean up, indefinite waits etc. Reading the kernel source code has helped a little, but to be honest I don't understand well enough the kernel VFS layer or the io_uring kernel implementation to draw firm conclusions.
Background: I've been implementing a PCIe endpoint driver intended for the High Performance Computing market (we want millions of zero-copy DMA IOPS if possible). During the course of that, I've come up with a few questions and concerns that I haven't been able to answer by reading kernel source code or looking at drivers that implement async. I/O.
If there is no such guide, then I don't mind starting something, e.g. a Wiki.
Beta Was this translation helpful? Give feedback.
All reactions