Registered I/O 的 Unix/Linux 等价物是什么?

What is the Unix/Linux equivalent of Registered I/O?

Windows 8 和 Server 2012 运动 RIO,它允许您预注册 I/O 缓冲区一次,然后重复使用这些相同的缓冲区,避免否则(显然)必要的每个 I/O-op 缓冲区检查。

RIO 还允许完全在用户模式下完成轮询等完成操作,而无需进行系统调用。

(如何)使用 Linux/Unix 这可能吗?

好像netmap is that - and more:

In building netmap, we identified and successfully reduced or removed three main packet processing costs:

  1. per-packet dynamic memory allocations, removed by preallocating resources
  2. system call overheads, amortized over large batches
  3. and memory copies, eliminated by sharing buffers and metadata between kernel and userspace, while still protecting access to device registers and other kernel memory areas

从 Linux 内核 5.1 开始,io_uring 终于有了适当的支持。