忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT HPC论坛 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
楼主: Minit

【原】Linux-千兆网卡驱动实现机制浅析 [复制链接]

论坛徽章:
0
发表于 2009-04-09 17:39 |显示全部楼层

我是程序员

我想知道的是。在执行接收软中断的时候硬中断也是关掉的,这时候数据也能正常放入DMA缓存区么

论坛徽章:
0
发表于 2009-04-10 11:08 |显示全部楼层

我是程序员

PCI设备有6个BAR,E1000恰好是从BAR0开始存储的是控制状态寄存器CSR,这个是硬件相关的。pci设备地址和物理地址一般来说没区别只不过的小端。通过ioremap就和我们编程用的虚拟地址没区别的了吧只不过要用固定的函数访问

中断关闭后数据包照常放入DMA缓存,轮训的时候是关中断的,这也是NAPI区别中断模式的重要区别

论坛徽章:
0
发表于 2009-04-10 11:29 |显示全部楼层

回复 #36 Solaris12 的帖子

对的。数据包是直接放到设备内存的,不是放到网卡再拷贝到内存

论坛徽章:
0
发表于 2009-04-21 00:46 |显示全部楼层
原帖由 linxinyu315 于 2009-4-9 17:39 发表
我想知道的是。在执行接收软中断的时候硬中断也是关掉的,这时候数据也能正常放入DMA缓存区么


中断跟DMA能否正常接收数据没有关系--网卡上有自己的DMA控制器,
CPU接到中断时,完整的一帧数据已经保存在DMA_DESC指向的DMA_RING里了,CPU跑过去读就是。
如果驱动采用POLL方式,这时就关中断,轮询网卡上的状态寄存器,发现有包就绪就读DMA_RING,轮询完后再开中断

论坛徽章:
0
发表于 2009-05-06 00:39 |显示全部楼层
学习中

论坛徽章:
0
发表于 2009-05-06 02:56 |显示全部楼层
不错。支持下

论坛徽章:
0
发表于 2009-05-09 11:31 |显示全部楼层
很崇拜哟。要给多多的鲜花与鼓励!

论坛徽章:
0
发表于 2009-07-31 12:00 |显示全部楼层
我简直连小虾都不算啊,差距太大。

论坛徽章:
0
发表于 2010-02-24 06:55 |显示全部楼层
现在又看不到图片了。真是奇怪

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2010-02-24 13:53 |显示全部楼层
现在又看不到图片了。真是奇怪
accessory 发表于 2010-02-24 06:55

是啊。最近论坛调整,问题比较多
您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP