免费注册 查看新帖 |

Chinaunix

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

有谁对网卡DMA有所了解 [复制链接]

论坛徽章:
0
31 [报告]
发表于 2008-03-18 13:39 |只看该作者
原帖由 zx_wing 于 2008-3-18 13:35 发表

哦,原来这卡就支持VMDq。
不过我觉得这个只是个过渡产品,它不能产生多个中断,对虚拟机意义不是很大,不过减少点拷贝动作,少个网桥设计而已。
再等一下,IOV出来后,一个网卡可以分配多个中断号,配合VM ...


产生多个中断的硬件是怎么工作的, 对虚拟机有啥好处? 能详细说说吗? 有时间的话给大家讲讲吧

论坛徽章:
0
32 [报告]
发表于 2008-03-18 13:46 |只看该作者
原帖由 zx_wing 于 2008-3-18 13:35 发表

哦,原来这卡就支持VMDq。
不过我觉得这个只是个过渡产品,它不能产生多个中断,对虚拟机意义不是很大,不过减少点拷贝动作,少个网桥设计而已。
再等一下,IOV出来后,一个网卡可以分配多个中断号,配合VM ...


你说的产生多个中断具体是什么意思?

这块网卡支持MSI-X,可以支持十几个中断,具体数目没查。每个ring或vmdq可以是独享中断的。

在OS level的虚拟化和带宽控制还是很需要这样的特性的。只不过Linux不支持而已。

这个xen这样层次的技术有所不同。

[ 本帖最后由 Solaris12 于 2008-3-18 13:56 编辑 ]

论坛徽章:
0
33 [报告]
发表于 2008-03-18 14:06 |只看该作者

回复 #31 albcamus solaris 的帖子

不是我不想讲,实在因为我对这个东西也不太了解,东西都还没出来,只是high level知道一点而已。

IOV大概是这样的,一个设备,例如网卡,操作系统看到的是多个独立设备,可以给一个设备分配多个中断号,这样你可以对一个网卡注册多个中断的handler。在虚拟机环境下就像有多个网卡一样。这个和产生多种中断不一样,多种中断还是用的一个中断号。

个人观点,不准确勿怪哈

论坛徽章:
0
34 [报告]
发表于 2008-03-18 14:14 |只看该作者
原帖由 Solaris12 于 2008-3-18 13:46 发表
这块网卡支持MSI-X,可以支持十几个中断,


支持十几个中断,指的是10多个中断号?  我理解你的意思是 这个和MSI/MSI-X没关系,对吧?

MSI本身就可以支持2个中断号(如果没记错)

论坛徽章:
0
35 [报告]
发表于 2008-03-18 14:31 |只看该作者
原帖由 zx_wing 于 2008-3-18 14:06 发表
不是我不想讲,实在因为我对这个东西也不太了解,东西都还没出来,只是high level知道一点而已。

IOV大概是这样的,一个设备,例如网卡,操作系统看到的是多个独立设备,可以给一个设备分配多个中断号,这样 ...



你说的这个应该是在桥片上实现的虚拟化,这个对xen这样的东西很有帮助。


MSI-X可以有独立的中断处理函数。

我在Intel最新的IG网卡上驱动,注册了9个独立的中断处理函数,4收,4发,加link change。

都是独立中断,可以并发执行中断处理,所以中断处理函数需要锁保护。

论坛徽章:
0
36 [报告]
发表于 2008-03-18 14:33 |只看该作者
原帖由 albcamus 于 2008-3-18 14:14 发表


支持十几个中断,指的是10多个中断号?  我理解你的意思是 这个和MSI/MSI-X没关系,对吧?

MSI本身就可以支持2个中断号(如果没记错)


我对MSI-X不了解,十几个中断指系统分配给我的中断向量。

这是我系统上的注册中断情况,可以看到,igb1注册了9个中断,每个中断都分给了不同的CPU.

> ::interrupts

        Device   Shared  Type    MSG #   State   INO     Mondo    Pil    CPU   
      e1000g#1      no   MSI        2    enbl    0x1a    0x79a      6     21
      e1000g#0      no   MSI        1    enbl    0x19    0x799      6      1
         mpt#0      no   MSI        0    enbl    0x18    0x798      4      4
          px#0      no   PCIe      27    enbl    0x3b    0x7bb      1      7
          px#0      no   PCIe      51    enbl    0x3a    0x7ba     14      8
          px#0      no   PCIe      49    enbl    0x39    0x7b9     14      9
          px#0      no   PCIe      48    enbl    0x38    0x7b8      9     10
         igb#1      no   MSI-X     17    enbl    0x29    0x7e9      6     19
         igb#1      no   MSI-X     16    enbl    0x28    0x7e8      6     18
         igb#1      no   MSI-X     15    enbl    0x27    0x7e7      6     17
         igb#1      no   MSI-X     14    enbl    0x26    0x7e6      6     16
         igb#1      no   MSI-X     13    enbl    0x25    0x7e5      6     15
         igb#1      no   MSI-X     12    enbl    0x24    0x7e4      6     14
         igb#1      no   MSI-X     11    enbl    0x23    0x7e3      6     13
         igb#1      no   MSI-X     10    enbl    0x22    0x7e2      6     12
         igb#1      no   MSI-X      9    enbl    0x21    0x7e1      6     11
         igb#0      no   MSI-X      8    enbl    0x20    0x7e0      6     10
         igb#0      no   MSI-X      7    enbl    0x1f    0x7df      6      9
         igb#0      no   MSI-X      6    enbl    0x1e    0x7de      6      8
         igb#0      no   MSI-X      5    enbl    0x1d    0x7dd      6      7
         igb#0      no   MSI-X      4    enbl    0x1c    0x7dc      6      6
         igb#0      no   MSI-X      3    enbl    0x1b    0x7db      6      3
         igb#0      no   MSI-X      2    enbl    0x1a    0x7da      6      2
         igb#0      no   MSI-X      1    enbl    0x19    0x7d9      6      0
         igb#0      no   MSI-X      0    enbl    0x18    0x7d8      6     31
        uata#0      no   Fixed    ---    enbl    0x4     0x7c4      4      5
        ohci#1      no   Fixed    ---    enbl    0x3     0x7c3      9     13
        ohci#0      no   Fixed    ---    enbl    0x1     0x7c1      9     14
          px#1      no   PCIe      27    enbl    0x3b    0x7fb      1     15
          px#1      no   PCIe      51    enbl    0x3a    0x7fa     14     16
          px#1      no   PCIe      49    enbl    0x39    0x7f9     14     17
          px#1      no   PCIe      48    enbl    0x38    0x7f8      9     18
>

论坛徽章:
0
37 [报告]
发表于 2008-03-18 14:44 |只看该作者
原帖由 albcamus 于 2008-3-18 14:14 发表


支持十几个中断,指的是10多个中断号?  我理解你的意思是 这个和MSI/MSI-X没关系,对吧?

MSI本身就可以支持2个中断号(如果没记错)



2个肯定不对,MSI-X支持2048个中断消息,你说的2个也许是内核的限制。

Solaris内核可以配置MSI-X最多分配中断向量的个数

论坛徽章:
0
38 [报告]
发表于 2008-03-18 15:02 |只看该作者
linux的ixgbe驱动确实是支持分配多个MSI-X中断号的,每个队列都是独立的中断号
周四才能拿到卡,实际情况还要到时候才知道

论坛徽章:
0
39 [报告]
发表于 2008-03-18 15:05 |只看该作者
我收回对IOV的看法,刚才问了一下朋友,发现MSI已经具有这功能了。
但由于我对MSI实在不懂,他给我讲的很多东西我也没理解到。
但目前对于linux来说是MSI允许的多个中断vector(MSI格式里那个)对应一个中断号。MSI本身支持不同的vector对应不同的中断号,但linux目前不支持。

论坛徽章:
0
40 [报告]
发表于 2008-03-18 15:12 |只看该作者
MSI应该是不支持的,但MSI-x支持.从驱动里来看应该没问题.....有问题的话我就死了T.T
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP