免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: skyprince
打印 上一主题 下一主题

请教:网卡驱动报文发送理解,谢谢 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-08-21 16:30 |只看该作者

新的疑问:报文发送流程

看Linux设备驱动程序时,提到内核传输数据包是调用驱动程序hard_start_transmit函数执行发送操作。
tg3_start_xmit函数就是tg3驱动的hard_start_transmit函数。驱动中还有一个tg3_tx函数。

我在这两个函数中通过printk打印提示信息。加载驱动后,在命令行执行ping操作。
printk("===start tg3_tx==\n")
printk("===start tg3_start_xmit===\n")

然后执行dmesg查看系统信息,发现只打印了“===start tg3_tx==”信息。

很迷惑:ping执行了发包操作,那应该调用驱动中的发包函数。怎么记录的是它进入的是 tg3_tx函数,而没有进入tg3_start_xmit函数呢?
或者说tg3_start_xmit函数和tg3_tx函数分别实现什么功能?数据发送时调用的是哪个函数?

谢谢。

论坛徽章:
0
12 [报告]
发表于 2009-08-23 12:39 |只看该作者

回复 #11 skyprince 的帖子

你都已经开始调试打印了,就干脆不停地加打印把整个流程搞清楚然后给大家来讲一讲了

感觉这个和NAPI有关系,在使用NAPI时IP层下发数据可能通过那个poll方法来走了;不过NAPI不熟悉,你得自己去测试一下了。可以用打印调用栈的方式来加速分析吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP