CN101789959A - 一种多核系统中的skb重用方法及装置 - Google Patents

一种多核系统中的skb重用方法及装置 Download PDF

Info

Publication number
CN101789959A
CN101789959A CN200910243263A CN200910243263A CN101789959A CN 101789959 A CN101789959 A CN 101789959A CN 200910243263 A CN200910243263 A CN 200910243263A CN 200910243263 A CN200910243263 A CN 200910243263A CN 101789959 A CN101789959 A CN 101789959A
Authority
CN
China
Prior art keywords
skb
buffering area
formation
processor
reuses
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN200910243263A
Other languages
English (en)
Other versions
CN101789959B (zh
Inventor
姚崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Topsec Technology Co Ltd
Original Assignee
Beijing Topsec Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Topsec Technology Co Ltd filed Critical Beijing Topsec Technology Co Ltd
Priority to CN2009102432634A priority Critical patent/CN101789959B/zh
Publication of CN101789959A publication Critical patent/CN101789959A/zh
Application granted granted Critical
Publication of CN101789959B publication Critical patent/CN101789959B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Multi Processors (AREA)

Abstract

本发明公开了一种多核系统中的SKB重用方法,包括如下步骤:A、对该多核系统的各处理器依次编号,并为每个处理器建立n个SKB重用队列,同时这些重用队列编号;B、回收SKB缓冲区时,将其插入为分配该缓冲区的处理器所绑定,并且与执行回收的处理器的编号一致的SKB重用队列的头部;C、重用SKB缓冲区时,执行重用分配的处理器遍历其绑定的n个SKB重用队列,在缓冲区个数大于1的队列中取下第二个SKB缓冲区进行重用分配。本发明同时提供了相应的多核系统中的SKB重用装置。采用本发明方案,相对于现有的SKB重用机制,能够减小互斥锁的影响,优化CACHE行为,从而有效提高多核系统报文转发性能。

Description

一种多核系统中的SKB重用方法及装置
技术领域
本发明属于通讯技术领域,尤其涉及一种多处理器环境下即多核系统中的SKB重用方法及装置。
背景技术
首先,对本发明涉及的一些名词和术语进行解释如下:
Linux:Linux是一套免费使用和自由传播的类Unix操作系统,它速度快,运行稳定,对硬件的配置要求低,兼具了其他操作系统的优点,可以免费使用,所以近几年内Linux得到了迅猛地发展。
SMP架构:SMP是Symmetric Multi-Processor的缩写,所谓对称多处理器架构,是指多个CPU在操作系统中的地位是平等的,无主次或从属关系。各CPU共享相同的物理内存,每个CPU访问内存中的任何地址所需时间是相同的。
SKB缓冲区:Linux系统中网络报文被存放在报文数据缓冲区内,同时每个报文数据缓冲区通过一个SKB结构进行描述。SKB是Linux TCP/IP协议栈的关键数据结构Socket Buffer(sk_buff)的简称,它表示接收或发送数据包的包头信息,并包含很多成员变量供网络代码中的各子系统使用。在数据转发过程中,SKB结构和报文数据缓冲区是一一对应的,总是同时分配同时释放,两者被简化描述为“SKB缓冲区”。
SKB重用(SKB Recycling):在linux报文转发过程中,报文发送成功后,并不将其对应SKB缓冲区释放到系统内存,而是回收到一个SKB重用队列中;在网卡接收过程中,当需要向接收网卡接收队列回填SKB缓冲区时,首先从重用队列中获取已经准备好的回收的SKB缓冲区,获取失败再从系统内存中重新分配新的SKB缓冲区。
SRQ:SRQ是SKB Recycling Queue的缩写,即为SKB重用队列。
下面对本发明的相关背景技术进行描述:
1、Linux网络报文转发机制描述
Linux网络报文转发机制可以抽象为四个处理过程:报文接收过程、报文转发过程、报文发送过程、报文发送完成过程,具体如图1所示。
报文接收过程在系统初始化的时候,从内核分配若干SKB缓冲区,并将其插入接收网卡接收队列中;接收网卡接收到报文后,通过DMA(Direct MemoryAccess,直接存储器)方式将数据写入SKB缓冲区,并通过中断通知接收处理程序,接收处理程序将该SKB缓冲区从接收网卡接收队列中取下,并分配新的SKB缓冲区填入接收网卡的接收队列,然后将接收报文交给报文转发过程。
报文转发过程一般情况下分为二层转发(网桥模式)和三层转发(路由模式),在二层转发过程中,通过查找MAC(Media Access Control,介质访问控制)地址表确定报文发送端口,在三层转发过程中,通过查找路由表确定报文发送端口。发送端口确定后报文即进入发送过程。
在发送过程中,系统将SKB缓冲区插入发送网卡的发送队列中,并向网卡寄存器写开始发送指令。
发送网卡将其发送队列中的报文发送完成之后,再通过中断通知发送完成过程,在发送完成过程中系统将已经发送的SKB缓冲区从发送网卡发送队列中摘下,并将其释放到系统的内存中。
上述转发模型中,SKB缓冲区的分配发生在报文接收过程,释放发生在报文发送完成过程,这两个过程被不同的网卡中断触发,因此SKB缓冲区的分配和释放发生在不同的网卡驱动中。
2、SKB重用机制描述
每个网络报文转发处理过程都会有一次SKB缓冲区分配和释放的动作,因此SKB重用机制的思想为:
1)在发送网卡发送队列和接收网卡接收队列之间增加了SKB重用队列;
2)在发送完成过程中将准备释放的SKB缓冲区插入到重用队列中;
3)在接收过程中向接收网卡接收队列回填SKB缓冲区的时候,首先判断SKB重用队列中是否有回收重用的SKB缓冲区,如果有则直接从其中获取回收重用的SKB缓冲区并回填,否则从系统内存中分配新的SKB缓冲区并回填。
由于SKB重用队列维护操作指令数量要远远低于系统内存管理函数的指令数,因此SKB重用机制有效减少了每个报文转发所需要的平均CPU时钟周期数,从而能够有效提升报文转发速率。
3、SKB重用机制在多处理器环境下主要问题
1)数据竞争问题
在多处理器、多网卡的系统中,提升网络报文转发性能的一个重要机制是将网卡与处理器进行亲和。根据前面网络转发模型的分析,当接收网卡、发送网卡与同一个处理器亲和时,SRQ队列操作在同一个处理器上串行执行,没有数据竞争问题。当接收网卡与发送网卡亲和不同的处理器时,SRQ的回收操作和重用操作将在不同的处理器上执行,此时就必须采用适当的互斥机制来解决SRQ队列的共享数据竞争问题。由于对SRQ队列的操作全部是写操作,而Linux核心提供的高效的写互斥机制是自旋锁(spinlock),因此在面向多核处理器的SKB重用机制中采用了spinlock来实现访问互斥。Spinlock锁会带来额外的处理器负担,影响报文转发效率。
2)CACHE行为问题
在现代的处理器架构中,多数采用多级的高速缓存(CACHE)来弥补处理器处理速度与内存访问速度之间的差距,因此CACHE行为成为影响软件运行效率的重要因素。无论是单处理器还是多处理器,CACHE命中率对于网络转发性能都起着至关重要的作用。与单处理相比,多处理器的CACHE结构更为复杂,各个处理器之间可能共享CACHE,也可能不共享CACHE;而不同CACHE之间为维护数据一致性而产生的同步开销对处理器指令执行效率的影响是非常大的。
4、目前常用的SMP架构下的SKB重用方法
Linux的SKB重用补丁即Skb recycling补丁是R.Olsson在02-03年之间针对e1000网卡设计的。其针对多处理器的回收算法是“CPU亲和回收算法”,该算法描述为:
1)假设系统中有n个处理器C1~Cn,为每个处理器Ci建立一个回收队列Qi(i=1,2…n);
2)在SKB结构中增加一个成员变量skb.c_tag,每次Ci从系统内存中分配新的SKB缓冲区时,为其赋值:skb.c_tag=i;
3)回收操作:任意的Cj(j=1,2…n)执行回收操作时,都将待回收的SKB缓冲区插入队列Qi(i=skb.c_tag)的头部;
4)重用操作:Ci固定从队列Qi中分配回收重用的SKB缓冲区,分配失败时从系统内存中分配新的SKB缓冲区;
5)每个回收队列Qi通过各自的互斥锁完成访问互斥,回收和重用操作执行之前都必须获得队列的互斥锁。
以上描述的Linux的SKB重用补丁存在如下缺点:
1)互斥锁影响分析:每个报文在转发过程中,都会执行两次加锁操作(接收过程从回收队列获取SKB缓冲区,发送完成过程向回收队列插入SKB缓冲区),而且两次操作竞争同一把锁;当报文在与不同处理器亲和的网卡之间交叉转发时,任意两个处理器之间都存在着竞争关系。因此在这一算法中互斥锁对性能影响是比较严重的。
2)算法CACHE行为分析:任意一个SRQ队列Qi都可能接收来自任一个处理器回收的SKB缓冲区,而双向队列节点插入操作会修改其前后节点的指针域,这意味着任意处理器Cj向队列Qi中插入一个SKB缓冲区节点时可能会修改Ck刚刚插入的SKB缓冲区节点数据;如果Cj和Ck不共享CACHE,就会触发CACHE同步操作。
发明内容
本发明要解决的技术问题是提供一种多核系统中的SKB重用方法及装置,其相对于现有的SKB重用机制,能够减小互斥锁的影响,优化CACHE行为,从而有效提高多核系统报文转发性能。
为解决上述技术问题,本发明多核系统中的SKB重用方法包括如下步骤:
为该多核系统中的每个处理器均建立n个SKB重用队列,所述各SKB重用队列中均始终保持不少于一个SKB缓冲区;并且对于每个处理器,均建立起其所述n个SKB重用队列与所述各处理器之间的一一对应关系;其中n为该多核系统中处理器的个数;
执行SKB缓冲区回收时,将SKB缓冲区插入到为分配该SKB缓冲区的处理器所具有,并且根据所述一一对应关系与执行回收操作的处理器相应的SKB重用队列中去;
执行SKB缓冲区重用时,从执行重用分配的处理器所具有的所述n个SKB重用队列中分配SKB缓冲区以供重用。
进一步地,为实现所述各SKB重用队列中均始终保持不少于一个SKB缓冲区,本发明在所述SKB重用队列初始化时,即为每个SKB重用队列分配一个SKB缓冲区。
进一步地,本发明建立起所述SKB重用队列与所述处理器之间的一一对应关系采用的方法包括:
对所述各处理器从1到n依次编号,对任一处理器所具有的所述各SKB重用队列,也从1到n依次编号,则对于任一处理器,其所具有的所述n个SKB重用队列,根据编号与所述各处理器一一对应。
更进一步地,本发明方法还包括:
在SKB结构中增加一个成员变量,用于记录分配该SKB缓冲区的处理器的编号。这样,在回收SKB缓冲区时,根据该SKB结构中记录的分配该SKB的处理器的编号以及执行回收操作的处理器的编号,能够将该SKB缓冲区插入到为分配该SKB的处理器所具有,并且与执行回收处理的处理器编号相同的SKB重用队列中去。
进一步地,本发明方法在执行SKB缓冲区回收时,是将回收的SKB缓冲区插入到所述SKB重用队列的头部的。
进一步地,本发明方法执行SKB缓冲区重用时,采用的方法包括:
所述执行SKB缓冲区重用分配的处理器遍历其所具有的各SKB重用队列,并从包含的SKB缓冲区个数大于1的SKB重用队列中进行重用分配。
更进一步地,本发明方法执行SKB缓冲区重用时,从所述包含的SKB缓冲区个数大于1的SKB重用队列中取下第二个SKB缓冲区进行重用分配。
为解决上述技术问题,本发明多核系统中的SKB重用装置包括:
SKB重用队列组建模块,该模块用于:为该多核系统中的每个处理器均建立n个SKB重用队列,所述各SKB重用队列中均始终保持不少于一个SKB缓冲区;并且对于每个处理器,均建立起其所述n个SKB重用队列与所述各处理器之间的一一对应关系;其中n为该多核系统中处理器的个数;
SKB缓冲区回收模块,该模块用于:执行SKB缓冲区回收时,将SKB缓冲区插入到为分配该SKB缓冲区的处理器所具有,并且根据所述一一对应关系与执行回收操作的处理器相应的SKB重用队列中去;
SKB缓冲区重用模块,该模块用于:执行SKB缓冲区重用时,从执行重用分配的处理器所具有的所述n个SKB重用队列中分配SKB缓冲区以供重用。
进一步地,在所述执行SKB缓冲区回收时,将回收的SKB缓冲区插入到所述SKB重用队列的头部。
进一步地,在所述执行SKB缓冲区重用时,采用的方案包括:所述执行SKB缓冲区重用分配的处理器遍历其所具有的各SKB重用队列,并从包含的SKB缓冲区个数大于1的SKB重用队列中取下第二个SKB缓冲区进行重用分配。
本发明的有益效果为:
本发明通过对每个处理器均建立n个SKB重用队列,并使队列的插入和删除操作分别针对SKB重用队列结点的不同域,避免了多个处理器对于SKB重用队列的互斥操作,为多处理器环境中对SKB重用队列操作提供了一种新的无锁算法。本发明不仅减小了现有的SKB重用机制中回收算法中互斥锁的影响,而且优化了CACHE行为,从而有效提高了多核系统的报文转发性能。
附图说明
图1为Linux网络报文转发机制原理示意图;
图2为本发明方法的一个优选实施例的流程示意图;
图3为本发明装置的一个优选实施例的结构示意图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细说明。
为了减小现有的SKB重用机制的回收算法中互斥锁的影响,优化CACHE行为,本发明设计了新的SKB缓冲区回收算法。
首先,本发明重新设计SRQ队列结构:假设系统有n个处理器C1~Cn,为每个处理器Ci建立n个SKB重用队列,即Qi1~Qin。该多核系统所具有SKB重用队列构成n×n的矩阵,如下:
Figure G2009102432634D00071
队列Qij是由SKB缓冲区构成的双向链表,队列Qij用于保存由Ci分配并由Cj回收的SKB缓冲区。
本发明采用的SKB缓冲区回收算法描述如下:
SKB重用队列初始化时为每个SKB重用队列分配一个SKB缓冲区,任意时刻任意SKB重用队列都必须满足至少具有一个SKB缓冲区;
在SKB结构中增加一个成员变量skb.c_tag,每次处理器Ci从系统内存中分配新的SKB缓冲区时,为其赋值:skb.c_tag=i;
回收操作时,执行回收操作的处理器Ci将SKB缓冲区插入到队列Qij(i=skb.c_tag)的头部;
重用操作时,执行重用分配的处理器Ci遍历SKB重用队列Qi1Qi2Qi3…Qin,并从包含的SKB缓冲区个数大于1的队列中取下第二个skb缓冲区重用,如果所具有队列包含的SKB缓冲区个数都等于1,则重用分配失败,从系统内存、中重新分配新的SKB缓冲区;
根据本发明采用的SKB缓冲区回收算法,SKB缓冲区回收和重用操作之间共享数据竞争不会影响转发过程正确执行,因此无需采用互斥锁保护。
下面对本发明采用的SKB缓冲区回收算法的具体实现进行说明:
本发明实施例中,在Linux 2.6.24kernel中对该回收算法进行实现,算法的两个主要函数处理如下所示:
回收函数:该函数输入参数fskb为待回收的SKB缓冲区指针;c_tag为该fskb结构的c_tag值,表示调用该函数的处理器的编号。
Skb_recycle_free(fskb,c_tag)
{
F1:fskb->prev=NULL;
F2:fskb->next=srq_head[c_tag][this_cpu];
F3:srq_head[c_tag][this_cpu]->prev=fskb;
F4:smp_mb();
F5:srq_head[c_tag][this_cpu]=fskb;
}
重用函数:该函数没有输入参数,如果从SKB重用队列中分配SKB缓冲区成功则返回获得的SKB缓冲区指针,否则返回空指针。
Skb_recycle_alloc()
{
A1:for(j=0;j<NR_CPUS;j++){
A2:if(srq_head[this_cpu][j]!=srq_tail[this_cpu][j]){
A3:skb1=srq_head[this_cpu][j];
A4:skb2=skb1->next;
A5:skb3=skb2->next;
A6:skb1->next=skb3;
A7:if(skb3==NULL);
A8:srq_tail[this_cpu][j]=skb1;
A9:else skb3->prev=skb1;
A10:skb2->prev=skb2->next=NULL;
A11:return skb2;
A12:}}
A13:return NULL;
}
采用以上回收算法,无需任何互斥锁,因此没有锁机制对性能产生的影响。
同时在该算法中,任意队列Qij仅在Ci和Cj两个处理器之间共享,当Ci与Cj共享二级CACHE时,Qij的维护操作就不会产生CACHE同步动作;同时,当连续发生队列插入或删除操作时,插入或删除的SKB节点的前后节点最近一次读写操作都由相同的处理器完成,其CACHE局部性较好。
图2为本发明方法的一个优选实施例的流程示意图,如图所示,本发明多核系统中的SKB重用方法具体包括如下步骤:
1、对该多核系统的n个处理器依次编号,即C1~Cn,同时为每个处理器Ci均建立n个SKB重用队列,并对这些SKB重用队列依次编号,即Qi1~Qin
2、SKB重用队列初始化时为每个队列均分配一个SKB缓冲区;
3、在SKB结构中增加一个成员变量skb.c_tag,用于记录分配该SKB缓冲区的处理器的编号;
4、执行SKB缓冲区回收操作时,执行回收操作的处理器Cj将SKB缓冲区插入到分配该SKB缓冲区的处理器Ci所具有的n个SKB重用队列中,与执行回收操作的处理器Cj相对应的SKB重用队列中,即将该SKB缓冲区插入队列Qij中,并将其插入该队列的头部;
5、执行SKB缓冲区重用分配时,执行重用分配的处理器Ci遍历其所具有的SKB重用队列Qi1Qi2Qi3…Qin,并从包含的SKB缓冲区个数大于1的队列中取下第二个SKB缓冲区重用。
图3为本发明装置的一个优选实施例的结构示意图,如图所示,本发明多核系统中的SKB重用装置包括SKB重用队列组建模块、SKB缓冲区回收模块和SKB缓冲区重用模块。
其中SKB重用队列组建模块用于:为该多核系统中的各个处理器均建立n个SKB重用队列,各SKB重用队列中均始终保持不少于一个SKB缓冲区;并且对于各个处理器,均预先建立起其n个SKB重用队列与该多核系统的n个处理器之间的一一对应关系。
SKB缓冲区回收模块用于:执行SKB缓冲区回收时,将SKB缓冲区插入到分配该SKB缓冲区的处理器所具有的n个SKB重用队列中,根据预先建立的一一对应关系与执行回收操作的处理器相应的队列的头部。
SKB缓冲区重用模块用于:执行SKB缓冲区重用时,执行SKB缓冲区重用分配的处理器遍历其所具有的各SKB重用队列,并从包含的SKB缓冲区个数大于1的SKB重用队列中取下第二个SKB缓冲区进行重用分配。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应注意的是,以上所述仅为本发明的具体实施例而已,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求记载的技术方案及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种多核系统中的SKB重用方法,其特征在于包括如下步骤:
为该多核系统中的每个处理器均建立n个SKB重用队列,所述各SKB重用队列中均始终保持不少于一个SKB缓冲区;并且对于每个处理器,均建立起其所述n个SKB重用队列与所述各处理器之间的一一对应关系;其中n为该多核系统中处理器的个数;
执行SKB缓冲区回收时,将SKB缓冲区插入到为分配该SKB缓冲区的处理器所具有,并且根据所述一一对应关系与执行回收操作的处理器相应的SKB重用队列中去;
执行SKB缓冲区重用时,从执行重用分配的处理器所有的所述n个SKB重用队列中分配SKB缓冲区以供重用。
2.根据权利要求1所述的多核系统中的SKB重用方法,其特征在于,为实现所述各SKB重用队列中均始终保持不少于一个SKB缓冲区,采用的方法包括:
在所述SKB重用队列初始化时,为每个SKB重用队列分配一个SKB缓冲区。
3.根据权利要求1所述的多核系统中的SKB重用方法,其特征在于,为建立起所述SKB重用队列与所述处理器之间的一一对应关系,所采用的方法包括:
对所述各处理器从1到n依次编号,同时对任一处理器所具有的所述各SKB重用队列,从1到n依次编号,则对于任一处理器,其所具有的所述n个SKB重用队列,根据编号与所述各处理器一一对应。
4.根据权利要求3所述的多核系统中的SKB重用方法,其特征在于,所述方法还包括步骤:
在SKB结构中增加一个成员变量,用于记录分配该SKB缓冲区的处理器的编号。
5.根据权利要求1所述的多核系统中的SKB重用方法,其特征在于:
在执行所述SKB缓冲区回收时,将回收的所述SKB缓冲区插入到所述SKB重用队列的头部。
6.根据权利要求1至5中任一项所述的多核系统中的SKB重用方法,其特征在于,执行SKB缓冲区重用时,所采用的方法包括:
所述执行SKB缓冲区重用分配的处理器遍历其所具有的各SKB重用队列,并从所包含的SKB缓冲区个数大于1的SKB重用队列中进行重用分配。
7.根据权利要求6所述的多核系统中的SKB重用方法,其特征在于:
执行SKB缓冲区重用时,从所述包含的SKB缓冲区个数大于1的SKB重用队列中取下第二个SKB缓冲区进行重用分配。
8.一种多核系统中的SKB重用装置,其特征在于包括:
SKB重用队列组建模块,该模块用于:为该多核系统中的每个处理器均建立n个SKB重用队列,所述各SKB重用队列中均始终保持不少于一个SKB缓冲区;并且对于每个处理器,均建立起其所述n个SKB重用队列与所述各处理器之间的一一对应关系;其中n为该多核系统中处理器的个数;
SKB缓冲区回收模块,该模块用于:执行SKB缓冲区回收时,将SKB缓冲区插入到为分配该SKB缓冲区的处理器所具有,并且根据所述一一对应关系与执行回收操作的处理器相应的SKB重用队列中去;
SKB缓冲区重用模块,该模块用于:执行SKB缓冲区重用时,从执行重用分配的处理器所具有的所述n个SKB重用队列中分配SKB缓冲区以供重用。
9.根据权利要求8所述的多核系统中的SKB重用装置,其特征在于:
在所述执行SKB缓冲区回收时,将回收的SKB缓冲区插入到所述SKB重用队列的头部。
10.根据权利要求8或9所述的多核系统中的SKB重用装置,其特征在于,在所述执行SKB缓冲区重用时,采用的方案包括:
所述执行SKB缓冲区重用分配的处理器遍历其所具有的各SKB重用队列,并从包含的SKB缓冲区个数大于1的SKB重用队列中取下第二个SKB缓冲区进行重用分配。
CN2009102432634A 2009-12-30 2009-12-30 一种多核系统中的skb重用方法及装置 Active CN101789959B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009102432634A CN101789959B (zh) 2009-12-30 2009-12-30 一种多核系统中的skb重用方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009102432634A CN101789959B (zh) 2009-12-30 2009-12-30 一种多核系统中的skb重用方法及装置

Publications (2)

Publication Number Publication Date
CN101789959A true CN101789959A (zh) 2010-07-28
CN101789959B CN101789959B (zh) 2013-05-08

Family

ID=42533011

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009102432634A Active CN101789959B (zh) 2009-12-30 2009-12-30 一种多核系统中的skb重用方法及装置

Country Status (1)

Country Link
CN (1) CN101789959B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102325091A (zh) * 2011-10-17 2012-01-18 迈普通信技术股份有限公司 内存释放方法和路由系统
CN102508783A (zh) * 2011-10-18 2012-06-20 深圳市共进电子股份有限公司 一种避免数据混乱的内存回收方法
CN102866923A (zh) * 2012-09-07 2013-01-09 杭州中天微系统有限公司 对称多核的高效一致性侦听过滤装置
CN102984085A (zh) * 2012-11-21 2013-03-20 网神信息技术(北京)股份有限公司 映射方法及装置
CN106453022A (zh) * 2016-09-14 2017-02-22 上海斐讯数据通信技术有限公司 一种网络设备和数据包发送方法
CN106572036A (zh) * 2016-11-09 2017-04-19 杭州迪普科技股份有限公司 一种套接字缓存skb管理方法及装置
CN107257329A (zh) * 2017-05-31 2017-10-17 中国人民解放军国防科学技术大学 一种数据分段卸载发送方法
CN107315622A (zh) * 2017-06-19 2017-11-03 杭州迪普科技股份有限公司 一种缓存管理的方法及装置
CN108595270A (zh) * 2018-04-27 2018-09-28 新华三信息安全技术有限公司 一种内存资源的回收方法及装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105939293B (zh) * 2016-01-22 2019-01-22 杭州迪普科技股份有限公司 一种skb回收方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6073177A (en) * 1997-08-05 2000-06-06 Sterling Software, Inc. Dynamic method for connecting a client to a server application
CN100464304C (zh) * 2006-08-29 2009-02-25 飞塔信息科技(北京)有限公司 一种基于Linux操作系统实现零拷贝的装置和方法
FR2925190B1 (fr) * 2007-12-18 2009-11-20 Alcatel Lucent Procede et dispositif de communication entre plusieurs interfaces de connexion

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102325091A (zh) * 2011-10-17 2012-01-18 迈普通信技术股份有限公司 内存释放方法和路由系统
CN102325091B (zh) * 2011-10-17 2014-09-17 迈普通信技术股份有限公司 内存释放方法和路由系统
CN102508783A (zh) * 2011-10-18 2012-06-20 深圳市共进电子股份有限公司 一种避免数据混乱的内存回收方法
CN102508783B (zh) * 2011-10-18 2014-04-09 深圳市共进电子股份有限公司 一种避免数据混乱的内存回收方法
CN102866923B (zh) * 2012-09-07 2015-01-28 杭州中天微系统有限公司 对称多核的高效一致性侦听过滤装置
CN102866923A (zh) * 2012-09-07 2013-01-09 杭州中天微系统有限公司 对称多核的高效一致性侦听过滤装置
CN102984085A (zh) * 2012-11-21 2013-03-20 网神信息技术(北京)股份有限公司 映射方法及装置
CN106453022A (zh) * 2016-09-14 2017-02-22 上海斐讯数据通信技术有限公司 一种网络设备和数据包发送方法
CN106572036A (zh) * 2016-11-09 2017-04-19 杭州迪普科技股份有限公司 一种套接字缓存skb管理方法及装置
CN107257329A (zh) * 2017-05-31 2017-10-17 中国人民解放军国防科学技术大学 一种数据分段卸载发送方法
CN107257329B (zh) * 2017-05-31 2019-10-01 中国人民解放军国防科学技术大学 一种数据分段卸载发送方法
CN107315622A (zh) * 2017-06-19 2017-11-03 杭州迪普科技股份有限公司 一种缓存管理的方法及装置
CN107315622B (zh) * 2017-06-19 2020-05-12 杭州迪普科技股份有限公司 一种缓存管理的方法及装置
CN108595270A (zh) * 2018-04-27 2018-09-28 新华三信息安全技术有限公司 一种内存资源的回收方法及装置

Also Published As

Publication number Publication date
CN101789959B (zh) 2013-05-08

Similar Documents

Publication Publication Date Title
CN101789959B (zh) 一种多核系统中的skb重用方法及装置
JP6238898B2 (ja) ミドルウェアマシン環境においてマルチノードアプリケーションのためのメッセージキューを提供および管理するためのシステムおよび方法
US8249072B2 (en) Scalable interface for connecting multiple computer systems which performs parallel MPI header matching
CN101650698B (zh) 直接存储器访问的实现方法
CN103221936B (zh) 一种用于处理集群的共享功能存储器电路
US7668923B2 (en) Master-slave adapter
US7971029B2 (en) Barrier synchronization method, device, and multi-core processor
CN104050091B (zh) 基于非一致性内存访问系统的网络设备及其设置方法
Bouteiller et al. Correlated set coordination in fault tolerant message logging protocols
US20090006546A1 (en) Multiple node remote messaging
JP2004342132A (ja) コンピュータプロセッサを含む装置、複数の所定のグループのタスクを実行するステップを含む方法、ネットワークデータを処理するステップを含む方法、複数のソフトウェアタスクを実行するための方法およびコンピュータプロセッサを含むネットワーク装置
US20090043927A1 (en) Buffer managing method and buffer managing apparatus
CN104102542A (zh) 一种网络数据包处理方法和装置
CN110825690B (zh) 多核处理器的核间通信方法及装置
US20030033350A1 (en) Method and apparatus for transmitting packets within a symmetric multiprocessor system
CN105656805B (zh) 一种基于控制块预分配的分组接收方法和装置
CN102880507A (zh) 一种链式结构消息申请及分发的方法
CN102299843A (zh) 一种基于gpu和缓冲区的网络数据处理方法及系统
CN103959261A (zh) 网络处理器中的多内核互联
WO2023160484A1 (zh) 一种图像处理的方法及相关装置和系统
CN115718711A (zh) 一种dma数据传输的系统和方法
US8312239B2 (en) Cache management for increasing performance of high-availability multi-core systems
CN108234147A (zh) Gpdsp中基于主机计数的dma广播数据传输方法
CN113254070A (zh) 加速单元、片上系统、服务器、数据中心和相关方法
WO2017222689A1 (en) Method, apparatus and system for performing matching operations in a computing system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee

Owner name: BEIJING TOPSEC TECHNOLOGY CO., LTD.

Free format text: FORMER NAME: BEIJING HEAVEN MELTS LETTER SCIENCE TECHNOLOGIES CO., LTD.

CP01 Change in the name or title of a patent holder

Address after: 100085 Haidian District East Road, No. three, China control building, floor, floor, 1

Patentee after: BEIJING TOPSEC TECHNOLOGY CO., LTD.

Address before: 100085 Haidian District East Road, No. three, China control building, floor, floor, 1

Patentee before: Beijing heaven melts letter Science Technologies Co., Ltd.

C56 Change in the name or address of the patentee

Owner name: BEIJING HEAVEN MELTS LETTER SCIENCE TECHNOLOGIES C

Free format text: FORMER NAME: BEIJING TOPSEC TECHNOLOGY CO., LTD.

CP01 Change in the name or title of a patent holder

Address after: 100085 Haidian District East Road, No. three, China control building, floor, floor, 1

Patentee after: Beijing heaven melts letter Science Technologies Co., Ltd.

Address before: 100085 Haidian District East Road, No. three, China control building, floor, floor, 1

Patentee before: BEIJING TOPSEC TECHNOLOGY CO., LTD.

C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: 100085 Haidian District East Road, No. three, China control building, floor, floor, 1

Patentee after: BEIJING TOPSEC TECHNOLOGY CO., LTD.

Address before: 100085 Haidian District East Road, No. three, China control building, floor, floor, 1

Patentee before: Beijing heaven melts letter Science Technologies Co., Ltd.

C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: 100085 Haidian District East Road, No. three, China control building, floor, floor, 1

Patentee after: Beijing heaven melts letter Science Technologies Co., Ltd.

Address before: 100085 Haidian District East Road, No. three, China control building, floor, floor, 1

Patentee before: BEIJING TOPSEC TECHNOLOGY CO., LTD.