System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种用于IB网卡的UAR页面分配方法和装置制造方法及图纸_技高网

一种用于IB网卡的UAR页面分配方法和装置制造方法及图纸

技术编号:41995790 阅读:13 留言:0更新日期:2024-07-12 12:21
本发明专利技术提供了一种用于IB网卡的UAR页面分配方法和装置,该方法包括:将PCIE基地址寄存器空间划分为UAR页面,利用PCIE基地址的偏移将所述UAR页面的地址映射为对应的主机侧起始地址,初始化全局链表,将每个UAR页面对应的起始地址添加到所述全局链表中;当创建队列对QP时,从所述全局链表中取出UAR页面,并将所述UAR页面的空闲WQE空间分配给所述队列对,以使每个队列对均获得独立的PCIE基地址寄存器空间。本发明专利技术的技术方案避免了多QP的并发导致的UAR page资源争用,提高了网卡性能。

【技术实现步骤摘要】

本专利技术属于网络通信领域,特别涉及一种用于ib网卡的uar页面分配方法和装置。


技术介绍

1、rdma(remote direct memory access,远程直接内存访问)是一种高效的网络通信技术,它允许计算机之间在不经过操作系统的情况下直接交换内存数据。rdma的关键优势在于它减少了数据传输过程中的延迟和cpu负载。blueflame是对传统rdma技术的重要补充,它通过优化内存写操作,提高了整体网络通信的效率和性能,它允许网卡硬件直接处理构建和处理网络包的操作,提供了更高效的方式来处理rdma的内存写操作,减少了对cpu的依赖,从而降低了延迟和提高了性能。uar(user access regin,用户直接访问区域)页面(uar page)是内存中用于存储进行rdma操作所必需的控制信息的区域。uar页面允许hca(高性能网卡)高效地访问这些控制信息,从而执行网络操作。每个uar页面包含多个uar,每个uar对应于特定的网络操作或队列。blueflame和uar页面共同工作,既提高数据包处理的效率,又确保了操作所需控制信息的快速访问,两者共同优化了rdma过程,降低了延迟,提高了吞吐量。

2、然而blueframe wqe(work queue element,工作队列项,用于指定和控制rdma操作)是按照64字节对齐的,所以如果直接通过uar提交,主机端需要进行一次拷贝,在多线程或多进程的环境中,如果多个线程或进程共享相同的qp和uar page,它们可能会同时尝试写入到uar page,导致竞态条件和性能问题。

3、当前mellanox ib网卡在设计时考虑了资源管理和性能优化的需求,在每个上下文(context)中分配了16个uar page,如图1所示。其中上下文包含与特定ib设备或资源相关联的数据结构和信息。这可以防止随着context的增加而出现竞态条件问题。但是对于同一个context内创建大量的qp(queue pair,队列对)时,这些qp的并发就会导致出现竞态条件,从而影响性能。


技术实现思路

1、本专利技术的目的在于提供一种用于ib网卡的uar页面分配方法和装置,旨在提高多qp的并发情况下的网卡性能。

2、根据本专利技术的第一方面,提供了一种用于ib网卡的uar页面分配方法,包括:

3、将pcie基地址寄存器空间划分为uar页面,利用pcie基地址的偏移将所述uar页面的地址映射为对应的主机侧起始地址,初始化全局链表,将每个uar页面对应的起始地址添加到所述全局链表中;

4、当创建队列对qp时,从所述全局链表中取出uar页面,并将所述uar页面的空闲wqe空间分配给所述队列对,以使每个队列对均获得独立的pcie基地址寄存器空间。

5、优选地,所述将每个uar页面添加到所述全局链表中,进一步包括:

6、将每个uar页面对应的起始地址依次插入所述全局链表的尾部。

7、所述uar页面的数量与进程或线程上下文无关。

8、所述从所述全局链表中取出uar页面,进一步包括:

9、从所述全局链表的头部取出当前uar页面,并将当前uar页面从链表的头部删除,然后将当前uar页面添加到所述全局链表的尾部。

10、所述将所述uar页面的空闲wqe空间分配给所述队列对,进一步包括:

11、如果当前uar页面存在空闲wqe空间,则将空闲wqe空间分配给当前队列对;

12、如果当前uar页面不存在空闲wqe空间,则从所述全局链表中继续取出后续uar页面,直到确定后续uar页面中存在空闲wqe空间,将该空闲wqe空间分配给当前队列对。

13、根据本专利技术的第二方面,提供了一种用于ib网卡的uar页面分配装置,包括:

14、链表生成单元,用于将pcie基地址寄存器空间划分为uar页面,利用pcie基地址的偏移将所述uar页面的地址映射为对应的主机侧起始地址,初始化全局链表,将每个uar页面对应的起始地址添加到所述全局链表中;

15、页面分配单元,用于当创建队列对qp时,从所述全局链表中取出uar页面,并将所述uar页面的空闲wqe空间分配给所述队列对,以使每个队列对均获得独立的pcie基地址寄存器空间。

16、相比于相关技术,本专利技术的技术方案具备以下优点:

17、使用全局链表的方式管理uar page,解除一个进程内拥有的uar page的数量限制,将整个bar0空间的全部利用起来,可以保证一个context内所有qp并发时不会产生竞态条件,从而保证软件性能,避免了多个qp对bar的访问冲突,每个qp可以访问独立的bar,一个进程或线程内的所有的qp都可以独占bar空间的资源,减少bar空间资源浪费。一个进程或线程内的所有的qp进行并发操作时,在软件层面可以实现无锁操作,减少了cpu由于锁竞争导致cpu资源浪费。由于所有的qp都独占uar page中的门铃区域,避免了多qp的并发导致uar page资源争用引起的性能瓶颈。

18、本专利技术的其它特征和优点将在随后的说明书中阐述,并且部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可以通过在说明书、权利要求书以及附图中所指出的结构和流程来实现和获取。

本文档来自技高网...

【技术保护点】

1.一种用于IB网卡的UAR页面分配方法,其特征在于,包括:

2.根据权利要求1所述的用于IB网卡的UAR页面分配方法,其特征在于,所述将每个UAR页面添加到所述全局链表中,进一步包括:

3.根据权利要求1所述的用于IB网卡的UAR页面分配方法,其特征在于,所述UAR页面的数量与进程或线程上下文无关。

4.根据权利要求1所述的用于IB网卡的UAR页面分配方法,其特征在于,所述从所述全局链表中取出UAR页面,进一步包括:

5.根据权利要求4所述的用于IB网卡的UAR页面分配方法,其特征在于,所述将所述UAR页面的空闲WQE空间分配给所述队列对,进一步包括:

6.一种用于IB网卡的UAR页面分配装置,其特征在于,包括:

7.根据权利要求6所述的用于IB网卡的UAR页面分配装置,其特征在于,所述链表生成单元,进一步用于:

8.根据权利要求6所述的用于IB网卡的UAR页面分配装置,其特征在于,所述UAR页面的数量与进程或线程上下文无关。

9.根据权利要求6所述的用于IB网卡的UAR页面分配装置,其特征在于,所述页面分配单元,进一步用于:

10.根据权利要求9所述的用于IB网卡的UAR页面分配装置,其特征在于,所述页面分配单元,进一步用于:

...

【技术特征摘要】

1.一种用于ib网卡的uar页面分配方法,其特征在于,包括:

2.根据权利要求1所述的用于ib网卡的uar页面分配方法,其特征在于,所述将每个uar页面添加到所述全局链表中,进一步包括:

3.根据权利要求1所述的用于ib网卡的uar页面分配方法,其特征在于,所述uar页面的数量与进程或线程上下文无关。

4.根据权利要求1所述的用于ib网卡的uar页面分配方法,其特征在于,所述从所述全局链表中取出uar页面,进一步包括:

5.根据权利要求4所述的用于ib网卡的uar页面分配方法,其特征在于,所述将所述uar页面的空闲wqe空间...

【专利技术属性】
技术研发人员:赵曦孙寅龙吴寅
申请(专利权)人:无锡众星微系统技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1