免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: VIP_fuck

请教个网卡驱动的问题 [复制链接]

论坛徽章:
0
发表于 2010-03-01 22:17 |显示全部楼层
这里面有几个错误:

1. 如果你说的是支持DMA的网卡,那网卡内部的缓存不是驱动来poll的,应该是DMA来 ...
Solaris12 发表于 2010-03-01 21:51



    1. 即使是支持DMA的网卡,驱动里也可以不做DMA启动操作,而是poll网卡缓存到物理内存,这只是个人理解的问题。

   2.网卡FIFO满,硬件后续收包并不一定都是DROP掉。至少我用FPGA实现的MAC就不Drop。

论坛徽章:
0
发表于 2010-03-02 08:32 |显示全部楼层
这里面有几个错误:

1. 如果你说的是支持DMA的网卡,那网卡内部的缓存不是驱动来poll的,应该是DMA来 ...
Solaris12 发表于 2010-03-01 21:51



    另外,DMA网卡?DMA是独立的外设吧。嘿嘿

论坛徽章:
0
发表于 2010-03-02 08:47 |显示全部楼层
   1. 即使是支持DMA的网卡,驱动里也可以不做DMA启动操作,而是poll网卡缓存到物理内存,这只是个人理解的问题。

   2.网卡FIFO满,硬件后续收包并不一定都是DROP掉。至少我用FPGA实现的MAC就不Drop。



    网卡怎么工作和个人理解无关, 设计就规定死了,看Spec就可以了。

    1. 因为你说poll,我假定你指的是NAPI的polling,这个是和中断模式相对的方式,这种方式一般也用DMA的,polling的代码是从rx ring上读数据,不是从网卡的缓存里。

      当然,我不是说没有直接从网卡缓存读数据的驱动,这取决于硬件设计,但这种方式绝对不是目前主流网卡的工作方式。

    2. FIFO满了不去drop包应该也不是主流。你的网卡支持Pause Frame吗?如果按你的方式,我觉得你的MAC是有bug的,你的网卡FIFO满了不去还允许收包覆盖已经收的包,意味着不会发PAUSE Frame,
       FCOE协议栈运行在这样的网卡上会有很大的问题。


    如果你说的网卡确实存在,可以说出具体型号,不然参考意义不大。

论坛徽章:
0
发表于 2010-03-02 08:51 |显示全部楼层
另外,DMA网卡?DMA是独立的外设吧。嘿嘿
readkernel 发表于 2010-03-02 08:32



独立的第三方DMA引擎那是ISA时代的遗留产物。

目前的PCI/PCIE网卡都自带DMA引擎,工作在Bus master方式。在网卡接收的过程中,驱动虽然不直接驱动DMA引擎,但驱动通过操作rx ring的寄存器和初始化rx ring,网卡就会预取rx descriptor的内容初始化好DMA引擎。

论坛徽章:
0
发表于 2010-03-02 08:59 |显示全部楼层
独立的第三方DMA引擎那是ISA时代的遗留产物。

目前的PCI/PCIE网卡都自带DMA引擎,工作在Bus mas ...
Solaris12 发表于 2010-03-02 08:51



    难道是自带MCU的网络控制芯片?
要说网络控制芯片那可大可小了,目前硬件支持TCP/IP协议栈的网络芯片(韩国哪个公司的)都有。
感觉脱离主题了

论坛徽章:
0
发表于 2010-03-02 09:21 |显示全部楼层
网卡流控也得驱动初始化使能吧,除非硬件做死

论坛徽章:
0
发表于 2010-03-02 09:22 |显示全部楼层
  难道是自带MCU的网络控制芯片?
要说网络控制芯片那可大可小了,目前硬件支持TCP/IP协议栈的网络芯片(韩国哪个公司的)都有。
感觉脱离主题了


感觉你好像懂网卡吧,又好像就只知道点名词。

支持TCP/IP协议栈的网卡技术,也叫TOE,不是所有网卡都有的,但DMA引擎是所有PCI/PCIE网卡都有的,所以现在如果驱动还要从网卡缓存上直接读包,那就是上古时代的设计了。

DMA引擎从网卡缓存读到主机内存里,驱动再poll这是主流。

论坛徽章:
0
发表于 2010-03-02 09:27 |显示全部楼层
感觉你好像懂网卡吧,又好像就只知道点名词。

支持TCP/IP协议栈的网卡技术,也叫TOE,不是所有网卡都 ...
Solaris12 发表于 2010-03-02 09:22



    或者这是PC主流使用的方式,嵌入式应用网络底层有用这般高级的芯片和技术?一般DMA和网络芯片都是独立开的。或者说我落伍了?

论坛徽章:
0
发表于 2010-03-02 09:30 |显示全部楼层
或者这是PC主流使用的方式,嵌入式应用网络底层有用这般高级的芯片和技术?一般DMA和网络芯片都是 ...
readkernel 发表于 2010-03-02 09:27


你落伍了,这是PCI设备的基本要求,从高端服务器到低端嵌入式,只要是PCI总线,就是这样的。

论坛徽章:
0
发表于 2010-03-02 09:36 |显示全部楼层
你落伍了,这是PCI设备的基本要求,从高端服务器到低端嵌入式,只要是PCI总线,就是这样的。
Solaris12 发表于 2010-03-02 09:30



    PCI总线在一些嵌入式处理器(PowerPC有几款)里有但不是主流,但内置的网络通信控制器都不是挂PCI总线的,除非支持PCI总线的处理器外挂PCI网卡外设,但多半不会这么用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP