我修改网卡驱动中分配rx数据包的dev_alloc_skb函数为什么驱动性能提高100%???

bekars 2006-08-14 11:02:46
我将dev_alloc_skb函数中的GFP_ATOMIC修改为GFP_ATOMIC|GFP_DMA,驱动的性能马上提高很多。

我看了源码,好像是skb数据部分被放在DMA内存中了,为什么linux内核源码不用GFP_ATOMIC|GFP_DMA,而用GFP_ATOMIC ??? 为什么不用DMA方式 ???

还有为什么这样做会把性能提高这么多 ??? 硬件是82551ER

是不是网卡驱动通过这种方式都可以提高性能,这样做有什么坏处 ???
...全文
544 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
可以通用么?
bekars 2006-08-17
  • 打赏
  • 举报
回复
to ljkong(漠星)

你用过e100的驱动吗,里面有dma的实现,但是为什么没有起作用
ljkong 2006-08-17
  • 打赏
  • 举报
回复
但并非所有的硬件都有DMA控制器的,有的是共享系统的DMA控制器,所以为了使用的普遍性,一般在驱动程序中不加入DMA的特性
ljkong 2006-08-15
  • 打赏
  • 举报
回复
DMA是需要有硬件上支持才可以的
bekars 2006-08-15
  • 打赏
  • 举报
回复
ixp425的开发板,硬件上应该是可以的
audio1234567 2006-08-14
  • 打赏
  • 举报
回复
真的么?试试

21,595

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧