这是我用谷歌搜索的东西:
sendfile()
就像write()
,仅直接从描述符到套接字。这消除了将数据从缓冲区缓存复制到用户空间中的缓冲区。
当前的 NIC 可以进行 scatter-gather I/O
,即它们可以从内核缓冲区获取数据包头,但从缓冲区缓存中获取数据包内容(来自用户的 csum 部分副本)。
结果被称为零拷贝 TCP,它是最终目标。
我的问题是:
调用的目的csum_partial_copy_from_user()
和时间是什么?我遵循 sendfile 的过程直到dev_queue_xmit()
,但我没有找到它的调用位置。谢谢