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 这可能吗?
In building netmap, we identified and successfully reduced or
removed three main packet processing costs:
- per-packet dynamic memory allocations, removed by preallocating resources
- system call overheads, amortized over large batches
- 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 终于有了适当的支持。
Windows 8 和 Server 2012 运动 RIO,它允许您预注册 I/O 缓冲区一次,然后重复使用这些相同的缓冲区,避免否则(显然)必要的每个 I/O-op 缓冲区检查。
RIO 还允许完全在用户模式下完成轮询等完成操作,而无需进行系统调用。
(如何)使用 Linux/Unix 这可能吗?
In building netmap, we identified and successfully reduced or removed three main packet processing costs:
- per-packet dynamic memory allocations, removed by preallocating resources
- system call overheads, amortized over large batches
- 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 终于有了适当的支持。