免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2094 | 回复: 2
打印 上一主题 下一主题

[驱动] linux 网络DMA技术疑惑 [复制链接]

论坛徽章:
16
CU十二周年纪念徽章
日期:2013-10-24 15:41:3415-16赛季CBA联赛之广东
日期:2015-12-23 21:21:55青铜圣斗士
日期:2015-12-05 10:35:30黄金圣斗士
日期:2015-11-26 20:42:16神斗士
日期:2015-11-19 12:47:50每日论坛发贴之星
日期:2015-11-18 06:20:00程序设计版块每日发帖之星
日期:2015-11-18 06:20:002015亚冠之城南
日期:2015-11-10 19:10:492015亚冠之萨济拖拉机
日期:2015-10-28 18:47:282015亚冠之柏太阳神
日期:2015-08-30 17:21:492015亚冠之山东鲁能
日期:2015-07-07 18:48:39摩羯座
日期:2014-08-29 23:01:42
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-05-08 21:28 |只看该作者 |倒序浏览
最近看一段网络相关的商业代码发现。在用户空间封装一个数据包,并且也使用了DMA描述表指向的该数据包,,后面在内核空间并没有看到使用copy_from_user这种函数把数据包,复制到内核空间,,而是看到只是调用DMA相关描述地址发送。。。

这种情况是怎么回事啊??  还有就是DMA的内存可以在用户空间直接使用???但是在内核空间是明显使用了DMA发送的数据
望有这方便的高手 分析哈撒   由于是商业代码  所以不能贴出来  真心烦啊、、

论坛徽章:
0
2 [报告]
发表于 2013-05-08 22:17 |只看该作者
是否做了mmap映射?

论坛徽章:
16
CU十二周年纪念徽章
日期:2013-10-24 15:41:3415-16赛季CBA联赛之广东
日期:2015-12-23 21:21:55青铜圣斗士
日期:2015-12-05 10:35:30黄金圣斗士
日期:2015-11-26 20:42:16神斗士
日期:2015-11-19 12:47:50每日论坛发贴之星
日期:2015-11-18 06:20:00程序设计版块每日发帖之星
日期:2015-11-18 06:20:002015亚冠之城南
日期:2015-11-10 19:10:492015亚冠之萨济拖拉机
日期:2015-10-28 18:47:282015亚冠之柏太阳神
日期:2015-08-30 17:21:492015亚冠之山东鲁能
日期:2015-07-07 18:48:39摩羯座
日期:2014-08-29 23:01:42
3 [报告]
发表于 2013-05-09 22:37 |只看该作者
回复 2# lenky0401


    我猜想应该是做了的  
因为厂商提供了一个函数给供用户分配数据包的内存。。在发送数据包的时候,,调用厂商封装的发送函数,,在跟踪发送函数的时候,,该发送函数在用户空间使用一个dma的描述结构指向该数据包。。。然后在通过向内核发送一个定义的消息,,,该消息有一个指针指向上述的用户空间的dma描述结构。。接着内核空间在收到消息后,,也有个dma描述结构(该结构是在内核空间实现的,,和前面的用户空间的dam描述结构不同)指向前面的用户空间的dma描述结构。。。后面就是执行dma操作 把数据包发送出去
大概就是这么样的  但是就是不太明白数据包是怎么道入内核的,,,如果是像使用mmap直接操作的话,,感觉用户空间的的dma描述结构指向该分配的数据包 是不是没有啥用啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP