SR-IOV Spec 笔记

参考文档
    PCI Local Bus Specification, Revision 3.0
    PCI Bus Power Management Interface Specification, Revision 1.2
    PCI Express Base Specification, Revision 2.1
    Multi-Root I/O Virtualization and Sharing Specification, Revision 1.0
    Address Translation and Sharing, Revision 1.1

1. 概述
    SR-IOV出现前,虚拟化的缺点:
        在SI和硬件间,VMM截获并模拟IO;降低了IO效率,且消耗宿主机CPU和内存资源。
    TA: Translation Agent;可选的;用于将TLP中的总线地址转换为存储器物理地址,与rc功能重叠;
    ATPT: Address Translation and Protection Table
        位于rc和系统内存之间。
        疑问:TA和APTP与VT-d无关?
    ATC: 位于TA或pcie设备内(如果存在)
    ACS:Access Control Service;可选的;
    一个pcie设备中可以有多个功能(最多8个;使能ARI时,最多256个);每个功能都有独立的配置和BAR空间;
    pcie设备sr-iov capability中的MSE比特如果被清零,则所有VF的存储空间都不能访问了;
    ARI使能时,一个pcie设备中最多有256个PF;VF的总线号可以是0-255之间;
        疑问:那一个pcie设备最多有多少个VF?
            答:理论上限65536 - pcie总线中已占用的route id。page 22
        疑问:软件配置附加总线号?如果软件没有配置足够的附加总线号,则使用到额外附加总线时的VF将不可见。
        疑问:宿主机总线枚举阶段,VF的总线号和bar空间就分配好了吗?

2. 初始化和资源分配
    2.1 sr-iov资源发现
        2.1.1
            VF不支持I/O空间,仅支持memory space;    
            一个PF的多个VF的memory space是连续分配的(VF间可能有间隙);
        2.1.2
            指定PF的第n个VF的Routing ID = PF的routing id + first vf offset + (n - 1) * vf stride;
            VF个数上限:理论上限为65536,但是不能与已存在的routing id存在交叠,且VF的总线号不能小于与之关联的PF的总线号;            
            当pcie switch的second bus number和subordinate bus number间没有足够的总线号时,支持sr-iov的设备的vf个数将被减小,甚至sr-iov功能不能被使能;
        2.1.4 中断资源分配
            VF支持MSI和MSI-X,不应支持INTx。
    2.2 重置机制
        常规重置后,已使能的VF将被去使能。
        VF的功能级重置仅影响VF的状态,不影响VF的配置空间。
        PF的功能级重置,将导致已使能的VF去使能。
    2.4 VF迁移:略

3. 配置
    3.3 SR-IOV Extended Capability
        3.3.2
            SR-IOV不支持vf migration。vf迁移指的是同一个pcie设备中有多个pf,vf在多个pf间的迁移。
        3.3.3 SR-IOV control寄存器
            3.3.3.5 ARI Capable Hierarchy
                当RP或switch的下游端口使能ARI功能后,软件将pcie设备的第一个pf的该比特置位。
                vf的routing id不受device id和func id的限制。
                    疑问:考虑到vf routing id的获取方法,ARI对于VF的意义是什么呢?
        3.3.5 InitialVFs
            对于SR-IOV,该字段与TotalVFs相等。
            如果VF Migration是使能的,且VF由使能切换为去使能然后再使能,该字段可能变化,因为VF迁移值其他PF了。
        3.3.8 Function Dependency Link
            该字段描述的是pf间的依赖关系;
            该字段填写依赖链中下一个pf的功能号,最后一个pf填写第一个pf的功能号;
            相互依赖的pf及其vf必须被分配给同一个虚拟机;实际操作过程中,将vf分配给虚拟机失败时,可考虑是否为这个原因。
        3.3.12 Supported Page Size
            PF支持的页大小的集合;每个bit代表一个页大小;如果第n个比特置一,则支持2**(n + 12)字节的页大小,0 <= n <= 31;
            示例:Supported Page Size = 0x00000553,则表示支持4KB, 8KB, 64KB, 256KB, 1MB, 4MB大小的页。
        3.3.13 System Page Size
            由软件配置;仅能有一个比特置一;置一的比特必须在Supported Page Size集合中;
            示例:System Page Size = 1,则表示页大小为4KB。
            含义:表示该PF的所有VF的bar必须以System Page Size对齐;
        3.3.14 VF BAR0, VF BAR1, VF BAR2, VF BAR3, VF BAR4, VF BAR5
            配置方式:与PF的bar寄存器一样:通过写全1,然后读回来确定bar空间的大小。
            含义:BAR0表示该PF的所有VF的bar0的基地址;BAR0映射的空间大小为: 一个VF的bar0的大小 * NumVFs;其他BAR同理;
            PF中所有VF的bar0的大小是一样的;其他bar也是;
    3.4 PF/VF配置空间头
    3.5 PCI Express Capability
    3.6 PCI Standard Capability
    3.7 PCI Express Extended Capability
        相应寄存器在VF和PF间的差异,主要体现为VF是否支持该寄存器,暂不关心。        
    
    
       

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Promox SR-IOV是一种技术,它用于在虚拟化环境中实现更高的性能和更低的延迟。SR-IOV代表单根输入/输出虚拟化,它允许虚拟机直接访问物理设备,而无需通过主机操作系统的干扰。 通常情况下,在虚拟化环境中,虚拟机通过主机操作系统来访问物理设备,这就导致了一定的性能损失和延迟。但是,Promox SR-IOV技术通过直接将物理设备的功能划分为虚拟功能,然后分配给虚拟机来解决这个问题。这使得虚拟机可以直接访问分配给它的物理设备,绕过主机操作系统的干扰。 Promox SR-IOV技术的一个重要优势是可以提供更低的延迟和更高的网络吞吐量。这对于需要高性能网络连接的应用程序非常重要,例如大规模数据传输和实时数据处理。此外,通过减少主机操作系统对网络流量的处理,SR-IOV还可以减少CPU消耗,提高整个系统的效率。 然而,Promox SR-IOV也存在一些限制。例如,由于物理设备的功能被划分为虚拟功能,因此每个虚拟机只能直接访问分配给它的特定功能。此外,SR-IOV还要求物理设备必须支持SR-IOV技术才能使用。这意味着,在实施Promox SR-IOV之前,需要对硬件进行适当的支持和配置。 总之,Promox SR-IOV是一种提高虚拟化环境性能和降低延迟的技术。通过直接将物理设备的功能划分为虚拟功能,并分配给虚拟机来实现,SR-IOV可以提供更低的延迟和更高的网络吞吐量。然而,SR-IOV也有一些限制,包括对硬件的特定支持和配置要求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值