繁体   English   中英

Linux内核sendpage函数

[英]Linux kernel sendpage function

假设我为用户空间分配了缓冲区,并且我想使用sendpage()通过NIC发送它。

sendpage支持零复制操作。 将会发生以下情况:
1. get_page-增加引用计数
2.通过NIC发送页面并接收ACK
3. put_page

在发送页面实际完成之前,页面是否可以被释放或重新使用。

(考虑TCP协议)

您需要注意以下几件事:

1)用户页面需要固定在内存中:根据操作系统环境,有多种固定方法,请使用操作系统提供的API固定它

2)如果页面上的引用计数> 0,则不会发生free,但是您需要确保页面上的引用计数没有其他人递减

3)linux中的nfs代码使用sendpage机制,因此是检查您的参考的好地方。

干杯,喝彩!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM