CN104376036A - 具有减少时延的分组处理的套接字管理 - Google Patents

具有减少时延的分组处理的套接字管理 Download PDF

Info

Publication number
CN104376036A
CN104376036A CN201410401396.0A CN201410401396A CN104376036A CN 104376036 A CN104376036 A CN 104376036A CN 201410401396 A CN201410401396 A CN 201410401396A CN 104376036 A CN104376036 A CN 104376036A
Authority
CN
China
Prior art keywords
socket
queue
device queue
list
special
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
CN201410401396.0A
Other languages
English (en)
Other versions
CN104376036B (zh
Inventor
E·塔米尔
E·露兹欧恩
M·R·威尔考克斯
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN104376036A publication Critical patent/CN104376036A/zh
Application granted granted Critical
Publication of CN104376036B publication Critical patent/CN104376036B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems

Abstract

一般地,本公开内容提供用于管理套接字和设备队列以便得到减少时延的分组处理的系统、方法和计算机可读介质。该方法可以包括维护特殊列表,所述特殊列表包括标识设备队列以及用于设备队列中的每一个的关联特殊套接字的条目,所述特殊套接字选自被配置为接收各分组的多个套接字;在特殊列表上忙碌轮询设备队列;从所述多个套接字中的一个接收分组;以及响应于检测到由中断处理模块提供所接收分组,更新特殊列表。所述更新可以包括:标识与所述已接收的分组相关联的设备队列;标识与所述已接收的分组相关联的套接字;以及如果所述已标识的设备队列不在特殊列表上的各条目中的一个上,则在特殊列表上创建新条目,该新条目包括所述已标识的设备队列和所述已标识的套接字。

Description

具有减少时延的分组处理的套接字管理
技术领域
本公开内容涉及分组处理,且尤其涉及具有增加数量的网络连接的、用于减少时延的分组处理的套接字和关联设备队列的管理。
背景技术
网络接口通常提供在网络和主控系统之间的数据分组传递能力。主控系统可以在网络接口和操作系统或产生和使用数据分组的用户应用/程序的更高层之间采用驱动程序模块。网络接口通常向驱动程序模块生成中断,以便发送可能要求驱动程序模块注意的条件,例如数据传递的完成和/或设备队列中新近接收的各分组的可用性。驱动程序模块中的网络栈处理然后处理在设备队列和更高层之间的分组的传输。在一些实例中,驱动器调度可以是基于计时器的而非由中断驱动的。在一些环境中,网络连接可以作为被称为网络套接字(或仅称为套接字)的抽象由系统呈现给用户应用。
中断常常在网络接口和用户应用之间的分组的传输中引入附加时延,这是因为它涉及上下文切换(常见的栈处理通常被设计为用于较高的吞吐量而非较低的时延)。减少时延的一些实现在与套接字相关联的设备队列上通过系统调用处理(或用户应用或代表应用的用户空间库)采用了忙碌轮询。然而,在尝试服务多个套接字/连接时,忙碌轮询的效果随着套接字的数量线性下降,且随着套接字的数量增加(例如高于几百个套接字)而变得不切实际地低效。
附图说明
随着以下具体实施方式继续,并且经过参考附图,将明显看出所要求保护的主题的多种实施方式的特征和优点,附图中相似标号描绘相似部件,附图中:
图1阐释与本公开内容一致的一种示例实施方式的最高级系统图;
图2阐释与本公开内容一致的一种示例实施方式的框图;
图3(a)阐释与本公开内容一致的另一示例实施方式的框图;
图3(b)阐释与本公开内容一致的另一示例实施方式的框图;
图4阐释与本公开内容一致的一种示例实施方式的操作的流程图;
图5阐释与本公开内容一致的另一示例实施方式的操作的流程图;以及
图6阐释与本公开内容一致的另一示例实施方式的操作的流程图。
尽管下列具体实施方式将参考说明性实施方式而进行,但是,本领域中的技术人员将明显看出许多替代方案、修改以及其变体。
具体实施方式
通常,本公开内容提供用来管理用于减少的分组处理时延的套接字和关联设备队列的系统、方法和计算机可读介质。一种系统可以被配置为提供用于确定诸如数据分组的可用性等的网络事件的多个路径。这些路径可以包括减少时延的忙碌轮询路径和较高时延(但增加吞吐量)的、中断或计时器驱动的路径。另外,系统调用模块可以被配置为维护被称为“特殊列表”的列表,该列表把各套接字映射到特殊活动设备队列。计算系统平台,例如,主控多个用户上下文应用的计算系统平台,可以具有相对大量的开放套接字和相对大量的硬件设备队列。然而,对于由单个处理器(或可用处理器的子集)提供服务的套接字,在任何时刻通常仅可以使用若干设备队列。因此,例如,尽管套接字的数量可以超过数千,但每个处理器中这些套接字可以仅由可能存在的多个设备队列(可能是数百或甚至数千)中的一个或两个设备队列提供服务。特殊列表给设备队列中的每一个提供在该设备队列和选自与该队列相关联的多个套接字的一个套接字(例如,通过该队列提供分组)之间的链路。然后,忙碌轮询可以限于该特殊列表上的设备队列以便增加效率和减少时延,因为不必要的队列的轮询消耗了额外的时间,如下面将更详细地解释的。
减少时延的忙碌轮询模块可以被配置为忙碌轮询设备队列以便以减少的时延把事件“输入”到栈和系统调用模块。当不存在当前可用事件时,响应于来自用户上下文应用的请求,例如Linux OS环境(或其他合适的操作系统)中的epoll系统调用,系统调用模块可以直接忙碌轮询队列,直到事件变得可用,因而减少了沿着这一路径的时延。
尽管在本公开内容中描述的各实施方式涉及从网络接口接收的分组,但应明白,在此描述的概念适用于相对高的吞吐量的任何输入/输出(I/O)系统,诸如例如盘I/O。
图1阐释与本公开内容一致的一种示例实施方式的最高级系统图100。网络接口104被配置为在主控系统106和网络102之间传递数据。网络接口104通常可以包括处理介质访问控制(MAC)层协议和物理(PHY)层协议的电路或模块。网络接口104通常也可以包括直接存储器访问(DMA)引擎。数据传递可以是双向的(即,数据被传送到网络和/或从网络接收收据)。主控系统106可以是任何类型的计算系统或通信设备,例如包括台式机、工作站、膝上型计算机、平板计算机、电话或智能手机或任何类型的有线或无线平台。主控系统106可以包括任何数量的处理器(CPU)108、110或处理器核心。可以驻留在主控存储器中的减少时延的设备驱动程序模块112可以提供在操作系统(OS)或在主控系统106上运行的其他软件和网络接口104之间的接口。
如将下面更详细地描述的,通过使用数据描述符、控制寄存器组和/或控制、通信和/或用于事件发布的任何其他合适的装置,驱动程序模块112可以与网络接口104连接。网络接口104可以包括被配置为完成在主控系统106和网络102之间的数据的传送和接收的硬件、固件(包括任何类型的可编程电路)和/或软件的任何组合。
图2阐释与本公开内容一致的一种示例实施方式的框图200。网络接口104被示出为包括一组或多组控制电路202和数据队列204。在一些实施方式中,数据队列可以驻留在主控系统106上的存储器中。数据队列可以是环形缓冲器或被配置为保存可以包括数据分组或描述符的数据的其他合适的数据结构,该描述符包括指向数据分组的指针以及与数据分组相关联的其他信息。每一组控制电路202和数据队列204可以与主控系统106上的一个或多个相应的处理器108、110相关联。
每一处理器108可以主控设备驱动程序模块112,设备驱动程序模块112还可以包括中断处理程序206、中断或计时器驱动的栈处理模块208和减少时延的忙碌轮询模块218。处理器108还可以包括网络栈模块212,网络栈模块212被配置为在驱动程序模块112和系统调用模块214和用户上下文应用处理模块216之间充当接口。网络栈模块212可以被配置为实现诸如例如传输控制协议(TCP)或用户数据报协议(UDP)等的联网协议。与网络栈以及用户上下文应用处理模块216结合,系统调用模块214可以被配置为服务于用户请求并监视用于事件的套接字,下面将更详细地描述这些操作。在一些实施方式中,中断/计时器驱动的栈处理模块208可以结合Linux OS的实现来采用半轮询状态机,半轮询状态机采用有时被称为NAPI(New API的首字母简略词)。基于NAPI的系统可以被配置为取决于系统负载在中断和计时器驱动的处理之间动态地切换。
系统调用模块214提供了一种机制,使得当应用感兴趣的套接字上存在活动(例如,网络事件)时可以通知用户上下文应用216。网络事件可以由网络栈模块212提供,且可以包括套接字的标识符以及关于分组到该套接字的路径的信息(例如,模块208或模块218)。
出于下列讨论的目的,将使用Linux OS系统调用epoll来描述与本公开内容一致的各种实施方式,但本公开内容不限于这种具体的系统调用实现或操作系统。
在用户应用和epoll系统调用之间的接口提供了用户应用可以添加到其中并从其移除要监视的各个文件描述符的虚拟文件。例如,这些文件可以是感兴趣的套接字。尽管用户感兴趣的各个套接字的身份和数量可以随时间改变,但epoll虚拟文件将通常是引用所监视的某种数量的文件描述符/套接字的永久性上下文。这种永久性上下文允许使用更复杂的数据结构和更高效的处理,如下面将描述的。
减少时延的忙碌轮询模块218可以被配置为:对于从所支持的设备接收各分组的每一套接字,监视套接字最近从中接收分组的设备队列。在来自用户应用的读取或轮询请求没有事情要报告时,这种信息被用来激活对该队列的忙碌轮询。由系统调用模块214例如以循环方式重复检查已经激活了忙碌轮询的队列,以便得到新的分组、事件或其他数据的可用性。
图3(a)阐释与本公开内容一致的另一示例实施方式的框图300a。系统调用模块214可以被配置为例如通过诸如以上所描述的epoll等的机制处理网络事件并与网络栈中的套接字处理交互。系统调用模块214可以使用处理选项1302来实现,处理选项1302对每一epoll上下文采用散列表306。该散列表的每一条目与设备队列204中的一个相关联(如果该设备队列具有正在受到监视的套接字的话),且被链接到特殊套接字308和冲突列表310,下面将结合图4中所阐释的流程图解释这些操作。
图3(b)阐释与本公开内容一致的另一示例实施方式的框图300b。系统调用模块214可以使用处理选项2304来实现,处理选项2304采用把每一设备队列204链接到特殊套接字标识符308的特殊列表312,下面将结合图5中阐释的流程图解释这些操作。
应明白,在一些实施方式中,代替散列表或列表,可以使用其他类型的数据结构。可以使用任何合适的数据结构,或者例如可以使用两级散列表,或者一种实现可以使用列表而不是散列表。
图4阐释与本公开内容一致的一种示例实施方式的操作的流程图400。300a的处理选项1302被阐释为例如由epoll响应于网络事件的到达而执行的操作的流程图400。此实施方式标识与每一epoll实例相关联的套接字且维护散列表306,具有用于输入正在监视的套接字中的一个或多个的每一设备队列的一个条目。这些条目把设备队列映射到特殊套接字308和冲突列表310。该列表可以被实现为链表,例如,当各条目在列表中的位置已知时,链表为添加和删除条目提供增加的效率,在这一实施方式中将是这种情况。在通过epoll登记新套接字时,标识该套接字相关联的设备队列。如果还不存在用于该队列的散列条目,则创建一个并将其添加到表,且把套接字链接到它。这一套接字变成用于该队列的“特殊”套接字308。替代地,如果已经存在用于该队列的散列条目,那么,把该套接字添加到与该队列相关联的套接字的冲突列表310。
在从epoll上下文移除套接字时,执行检查以便判断该套接字是否处于用于该设备队列的冲突列表上,或者,判断套接字是否用于该队列的特殊套接字。如果该套接字处于冲突列表上,则从该列表移除它。如果套接字是用于该队列的特殊套接字且用于该队列的冲突列表上不存在其他套接字,那么,删除散列表中用于该队列的条目。然而,如果该冲突列表上存在其他套接字,那么,从冲突列表移除那些套接字中的一个,并将其链接到散列表,以便变成用于该队列的新的特殊套接字。
减少时延的忙碌轮询模块218和/或系统调用模块214可以把轮询限制在散列表306中所列出的设备队列。
如果与套接字相关联的设备队列改变了,则可以首先移除该套接字,如上所述,且然后使用新的队列重新登记该套接字。
在操作402,分组从设备队列到达套接字上。在操作404,设备队列身份(ID)被验证为是有效的。之所以这样做是因为,一些设备可能不被配置为支持在本公开内容中描述的实施方式的特征,或者对于该设备可以简单禁用该选项(例如,由系统管理员关闭)。在操作406,执行检查,以便判断套接字是否处于用于该队列的冲突列表上。如果不是,那么,在操作408、410,找到用于该队列的散列表条目,且如果套接字不作为特殊套接字链接到该队列,那么,在操作412把它被添加到冲突列表。如果不存在用于这一队列的散列表条目,那么,在操作414添加新条目,且把套接字作为特殊套接字链接到它。
例如在分组来自另一网络设备(例如,由于路由改变)时或在网络设备上的队列指派改变时,套接字与队列的关联可以动态地改变。如在操作416判断的,如果与套接字相关联的设备队列改变,那么,在操作418到428从该设备队列散列表条目或关联冲突列表移除该套接字,且然后在操作410开始用新的队列ID重新登记该套接字。
图5阐释与本公开内容一致的另一示例实施方式的操作的流程图500。300b的处理选项2 304被阐释为例如由epoll响应于网络事件的到达而执行的操作的流程图500。在这一实施方式中,在特殊列表312上仅标识和跟踪特殊套接字,这创建在活动的设备队列和与那些队列相关联的套接字之间的特殊映射。换句话说,特殊列表312列出用于由epoll上下文监视的套接字的特殊队列、把它们链接到由该队列支持(输入)的单个套接字。尽管可以存在多个套接字,但对于期望分组或事件从任何设备队列到达的网络栈,仅跟踪对于每一队列找到的第一套接字,即特殊套接字。在这一实施方式中,避免了对维护冲突列表的需要。特殊列表312可以被实现为链表以便促进条目的增加和删除。
在分组到达套接字时,做出关于分组是通过中断/计时器驱动的栈处理模块208(例如,第一路径)还是通过减少时延的忙碌轮询模块218(例如,第二路径)到达的判断。如果分组通过中断/计时器驱动的栈处理模块208到达,则做出检查以便判断该队列是否处于特殊列表312上,且如果不是,则添加该队列和套接字。这种检查可以是计算上相对昂贵的测试,这是由于可能需要检查大量的分组。已知通过减少时延的忙碌轮询模块218的第二路径到达的分组来自正在被轮询的队列(激活忙碌轮询)且因此不需要被测试。另外,在忙碌轮询活动时,大多数分组(通常多于99.9%的分组)将通过减少时延的忙碌轮询模块218到达,这得到了增加的效率。因为存在通过中断/计时器驱动的栈处理模块208到达的相对少量的分组,在忙碌轮询活动时,可以延期昂贵的套接字测试(搜索特殊列表),直到分组连续两次通过中断路径(第一路径)。这可以把假阳性测试发生率从标称的0.1%减少到标称的0.0001%。
如果与套接字相关联的设备队列改变,且该套接字在特殊列表上,则可以从该列表移除它。如果存在使用该设备队列的其他套接字,随后将添加它们中的一个,作为在该套接字上的处理的结果,这将检测到不是通过减少时延的路径(例如,通过中断路径连续两次提供)来服务它。
减少时延的忙碌轮询模块218和/或系统调用模块214可以把轮询限制在特殊列表312中列出的设备队列。
在操作502,分组从设备队列到达套接字上。在操作504、506,如果与该套接字相关联的设备队列改变(例如,设备队列ID改变)且如果套接字处于特殊列表312上,那么,在操作508,从列表移除旧的设备队列ID和关联的套接字,且在操作510,该过程继续。否则,在操作516,如果分组未通过中断/计时器驱动的栈处理模块208到达,则该过程完成,且分组将已经由减少时延的忙碌轮询模块218正确地处理。
然而,如果分组通过中断/计时器驱动的栈处理模块208到达,那么,在操作510、512,如果设备队列ID有效但不在该列表上,则在操作514,该设备队列和套接字将被添加到列表,且该过程完成。
流程图上的粗线条(例如520)指示对于大多数分组(例如多于90%的分组)将通常执行的路径。
在一些实施方式中,可以提供硬件支持,从而以较高效率轮询设备队列。每一epoll实例可以与被链接到当前由该epoll实例使用的硬件数据队列的硬件事件队列相关联。这些硬件数据队列是epoll对于它正在监视的套接字(例如特殊列表上的套接字)在其上期望网络数据和事件到达的队列。该硬件事件队列可以被配置为接收在关联硬件数据队列中的任何具有可用事件时生成的通知。当epoll添加和移除感兴趣的套接字时,可以从用于该epoll实例的事件队列添加或移除硬件数据队列。可以维护要监视的数据队列的列表,例如,如结合图3(a)和图3(b)所描述的。
替代地,在一些实施方式中,可以通过可以由设备更新的状态寄存器(或其他数据结构)提供硬件支持。可以在便于CPU/OS监视的主控存储器位置中复制寄存器的内容。寄存器可以包含用于与给定的epoll实例(或处理器)相关联的硬件设备队列中的每一个的状态位。当队列上存在活动(例如,事件)时,可以设置队列的状态位。在超时过期之后,或者在驱动器已经得知该事件之后,可以通过对寄存器进行写入直接地自动清除该位,或者通过利用传入分组的处理更新队列状态间接地自动清除该位。替代地,响应于事件,可以切换状态位(从开到关,以及从关到开)。在这一实施方式中,仅轮询一个位置,即增加效率的、有效地表示所有套接字的寄存器(或其值的主控存储器副本)。在这里,再次可以维护要监视的数据队列的列表,例如,如结合图3(a)和图3(b)所描述的。
在一些实施方式中,系统调用模块214可以在处理器上执行monitor和mwait指令(操作码)。monitor和mwait指令可以被配置为把处理器置于空闲模式或睡眠模式,在写入包含上面提到的状态数据结构的CPU高速缓存行时,可以触发空闲模式或睡眠模式以便唤醒。这可以是对设备队列的忙碌轮询的更节能的替代。在一些实施方式中,mwait指令可以是定时mwait指令。可以借助于时间限制机制配置定时mwait指令,诸如例如,以便在时间阈值已经过期之后触发唤醒。尽管mwait指令可以被用来等待设备队列中的每一个,但在提供了状态寄存器的各实施方式中,如上所述,mwait指令可以被用来仅等待状态寄存器。
图6阐释与本公开内容一致的另一示例实施方式的操作600的流程图。操作提供用来管理用于减少分组处理时延的套接字和关联设备队列的方法。在操作610,维护特殊列表。特殊列表包括标识设备队列和用于设备队列中的每一个的关联特殊套接字的条目,该特殊套接字选自被配置为接收各分组的多个套接字。在操作620,忙碌轮询特殊列表上的设备队列。在操作630,从所述多个套接字中的一个接收分组。在操作640,响应于检测到由中断处理模块提供所述已接收的分组,更新特殊列表。在操作650,该更新包括:标识与所述已接收的分组相关联的设备队列;标识与所述已接收的分组相关联的套接字;以及如果所述已标识的设备队列不在特殊列表上的各条目中的一个上,则在特殊列表上创建新条目,该新条目包括所述已标识的设备队列和所述已标识的套接字。
附录A中给出源代码软件的一个说明性实施方式。
在此描述的方法的实施方式可以在包括一个或多个存储介质的系统中实现,这些存储介质上个别地或组合地存储有指令,这些指令在由一个或多个处理器执行时执行这些方法。在这里,处理器可以包括,例如,系统CPU(例如,核心处理器)和/或可编程电路。因而,根据在此描述的方法预期操作可以跨越多个物理设备(例如处于若干不同的物理位置的处理结构)而分布。而且,可以个别地或以子组合执行预期方法操作,如本领域中的技术人员将理解的。因而,并非每一流程图中的全部操作都需要执行,且本公开内容明确地预期允许这样的操作的所有子组合,如本领域中的普通技术人员将理解的。
存储介质可以包括任何类型的有形介质,例如,任何类型的盘,其包括软盘、光盘、紧致盘只读存储器(CD-ROM)、可重写紧致盘(CD-RW)、数字多用盘(DVD)和磁光盘;半导体设备,例如只读存储器(ROM)、诸如动态RAM和静态RAM等的随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪速存储器磁或光卡;或适用于存储电子指令的任何类型的介质。
在此处的任何实施方式中所使用的“电路”可以包括,例如,单独地或以任何组合的硬布线的电路、可编程电路、状态机电路和/或存储由可编程电路执行的指令的固件。在一些实施方式中,电路可以被实现为软件或任何合适的可编程操作的集合。应用可以被具体化为可以在诸如主控处理器或其他可编程电路等的可编程电路上执行的代码或指令。在此处的任何实施方式中所使用的模块可以被具体化为电路、固件、软件或其任何组合。电路可以被具体化为集成电路,例如集成电路芯片。
因而,本公开内容提供用来管理用于减少时延的分组处理的套接字和关联设备队列的系统、方法和计算机可读介质。下列示例属于进一步的实施方式。
该系统可以包括被配置为维护特殊列表的系统调用模块,该特殊列表包括标识设备队列和用于设备队列中的每一个的关联特殊套接字的条目,该特殊套接字选自被配置为接收各分组的多个套接字。这种示例的系统也可以包括减少时延的忙碌轮询模块,其被配置为忙碌轮询特殊列表上的设备队列。这种示例的系统还可以包括网络栈模块,其被配置为从所述多个套接字中的一个接收分组。这种示例的系统调用模块还可以被配置为响应于检测到由中断处理模块提供所述已接收的分组更新特殊列表,该更新包括:标识与所述已接收的分组相关联的设备队列;标识与所述已接收的分组相关联的套接字;以及如果所述已标识的设备队列不是处于特殊列表上的各条目中的一个上,则在特殊列表上创建新条目,该新条目包括所述已标识的设备队列和所述已标识的套接字。
另一示例设备包括前述组件,且系统调用模块还被配置为延时特殊列表的更新,直到检测到第二个连续接收到由中断处理模块提供的分组。
另一示例设备包括前述组件,且系统调用模块还被配置为:检测在套接字和设备队列之间的关联的改变;判断所改变的套接字是否处于特殊列表上的各条目中的一个上;以及响应于该判断,从特殊列表移除包括所改变的套接字的条目。
另一示例设备包括前述组件,且中断处理模块是计时器驱动的。
另一示例设备包括前述组件,且还包括硬件事件队列,其被配置为响应于特殊列表上的设备队列中的事件的可用性生成通知,且忙碌轮询包括接收通知。
另一示例设备包括前述组件,且忙碌轮询包括在与包括硬件事件队列的高速缓存行相关联的处理器上执行monitor指令和mwait指令,monitor和mwait指令被配置为使得处理器过渡到睡眠状态,该睡眠状态响应于硬件事件队列的修改而终止。
另一示例设备包括前述组件,且还包括状态寄存器,其包括状态位,状态位中的每一个与特殊列表上的设备队列相关联,状态位被设置为指示特殊列表上的设备队列中的事件的可用性,且忙碌轮询包括监视状态寄存器。
另一示例设备包括前述组件,且忙碌轮询包括在与包括状态寄存器的高速缓存行相关联的处理器上执行monitor指令和mwait指令,monitor和mwait指令被配置为使得处理器过渡到睡眠状态,该睡眠状态响应于状态位的修改而终止。
根据另一方面,提供了一种方法。该方法可以包括维护特殊列表,该特殊列表包括标识设备队列和用于设备队列中的每一个的关联特殊套接字的条目,该特殊套接字选自被配置为接收各分组的多个套接字。这种示例的方法也可以包括忙碌轮询特殊列表上的设备队列。这种示例的方法还可以包括从所述多个套接字中的一个接收分组。这种示例的方法还可以包括响应于检测到由中断处理模块提供所述已接收的分组更新特殊列表,该更新包括:标识与所述已接收的分组相关联的设备队列;标识与所述已接收的分组相关联的套接字;以及如果所述已标识的设备队列不是处于特殊列表上的各条目中的一个上,则在特殊列表上创建新条目,该新条目包括所述已标识的设备队列和所述已标识的套接字。
另一示例方法包括前述操作,且还包括延迟特殊列表的更新,直到检测到第二个连续接收到由中断处理模块提供的分组。
另一示例方法包括前述操作,且还包括检测在套接字和设备队列之间的关联的改变;判断所改变套接字是否处于特殊列表上的各条目中的一个上;以及响应于该判断,从特殊列表移除包括所改变的套接字的条目。
另一示例方法包括前述操作,且忙碌轮询还包括从硬件事件队列接收通知,该硬件事件队列被配置为响应于特殊列表上的设备队列中的事件的可用性生成通知。
另一示例方法包括前述操作,且还包括在与包括硬件事件队列的高速缓存行相关联的处理器上执行monitor指令和mwait指令,monitor和mwait指令被配置为使得处理器过渡到睡眠状态,该睡眠状态响应于硬件事件队列的修改而终止。
另一示例方法包括前述操作,且忙碌轮询还包括监视状态寄存器,该状态寄存器包括状态位,状态位中的每一个与特殊列表上的设备队列相关联,状态位被设置为指示特殊列表上的设备队列中的事件的可用性。
另一示例方法包括前述操作,且还包括在与包括状态寄存器的高速缓存行相关联的处理器上执行monitor指令和mwait指令,monitor和mwait指令被配置为使得处理器过渡到睡眠状态,该睡眠状态响应于状态位的修改而终止。
根据另一方面,提供了一种方法。该方法可以包括维护散列表,其被配置为把各设备队列映射到特殊套接字和附加套接字的冲突列表,该特殊套接字和附加套接字与设备队列相关联。这种示例的方法也可以包括忙碌轮询该散列表上的设备队列。这种示例的方法还可以包括从轮询系统调用接收新套接字登记。这种示例的方法还可以包括标识与设备队列相关联的新套接字。这种示例的方法还可以包括,如果所述已标识的设备队列不是处于散列表中,则在散列表中为所述已标识的设备队列创建新条目,该新条目包括作为特殊套接字的新套接字,且还包括空的冲突列表。这种示例的方法还可以包括,如果所述已标识的设备队列处于散列表中,则把新套接字添加到散列表中的设备队列条目的冲突列表。
另一示例方法包括前述操作,且还包括:检测在套接字和设备队列之间的关联的改变;如果所改变的套接字是处于与设备队列相关联的冲突列表上,则从冲突列表移除所改变的套接字;如果所改变的套接字是与设备队列相关联特殊套接字且与设备队列相关联的冲突列表是空的,则在用于设备队列的散列表中删除该条目;以及如果所改变的套接字是与设备队列相关联特殊套接字且与设备队列相关联的冲突列表是不空的,则用冲突列表上的套接字中的一个代替与设备队列相关联特殊套接字。
另一示例方法包括前述操作,且忙碌轮询还包括从硬件事件队列接收通知,该硬件事件队列被配置为响应于特殊列表上的设备队列中的事件的可用性生成通知。
另一示例方法包括前述操作,且还包括在与包括硬件事件队列的高速缓存行相关联的处理器上执行monitor指令和mwait指令,monitor和mwait指令被配置为使得处理器过渡到睡眠状态,该睡眠状态响应于硬件事件队列的修改而终止。
另一示例方法包括前述操作,且忙碌轮询还包括监视状态寄存器,该状态寄存器包括状态位,状态位中的每一个与特殊列表上的设备队列相关联,状态位被设置为指示特殊列表上的设备队列中的事件的可用性。
另一示例方法包括前述操作,且还包括在与包括状态寄存器的高速缓存行相关联的处理器上执行monitor指令和mwait指令,monitor和mwait指令被配置为使得处理器过渡到睡眠状态,该睡眠状态响应于状态位的修改而终止。
根据另一方面,提供了其上存储有指令的至少一个计算机可读存储介质,在由处理器执行时,这些指令引起处理器执行上面的示例中的任何中所描述的方法的操作。
根据另一方面,提供了一种装置,包括执行上面的示例中的任何中所描述的方法的装置。
此处所使用的术语和表达被用作描述而不是限制的术语,并且,在使用这样的术语和表达时,不预期排除所示出的和所描述的特征的任何等效内容(或其部分),且应该认识到,在权利要求书的范围内的各种修改都是可能的。
相应地,权利要求书预期涵盖所有这样的等效内容。此处已经描述了各种特征、方面和各实施方式。本领域的技术人员应理解,各特征、方面和实施方式对彼此组合以及变更和修改敏感。
因此,应当认为本公开内容包含这样的组合、变更和修改。
附录A

Claims (30)

1.一种用于减少时延的分组处理的系统,所述系统包括:
系统调用模块,其被配置为维护特殊列表,所述特殊列表包括标识设备队列和用于所述设备队列中的每一个的关联特殊套接字的条目,所述特殊套接字选自被配置为接收各分组的多个套接字;
减少时延的忙碌轮询模块,其被配置为忙碌轮询所述特殊列表上的所述设备队列;
网络栈模块,其被配置为从所述多个套接字中的一个接收分组;以及
所述系统调用模块还被配置为响应于检测到由中断处理模块提供所述已接收的分组更新所述特殊列表,所述更新包括:
标识与所述已接收的分组相关联的设备队列;
标识与所述已接收的分组相关联的套接字;以及
如果所述已标识的设备队列不是处于所述特殊列表上的所述各条目中的一个上,则在所述特殊列表上创建新条目,所述新条目包括所述已标识的设备队列和所述已标识的套接字。
2.如权利要求1所述的系统,其特征在于,所述系统调用模块还被配置为延时所述特殊列表的所述更新,直到检测到由所述中断处理模块提供的第二个续接收到的分组。
3.如权利要求1所述的系统,其特征在于,所述系统调用模块还被配置为:
检测在套接字和设备队列之间的关联的改变;
判断所述已改变的套接字是否处于所述特殊列表上的所述各条目中的一个上;以及
响应于所述判断,从所述特殊列表移除包括所述已改变的套接字的所述条目。
4.如权利要求1所述的系统,其特征在于,所述中断处理模块是计时器驱动的。
5.如权利要求1所述的系统,进一步包括硬件事件队列,其被配置为响应于所述特殊列表上的所述设备队列中的事件的可用性生成通知,其中所述忙碌轮询包括接收所述通知。
6.如权利要求5所述的系统,其特征在于,所述忙碌轮询包括在与包括所述硬件事件队列的高速缓存行相关联的处理器上执行monitor指令和mwait指令,所述monitor和mwait指令被配置为使得所述处理器过渡到睡眠状态,所述睡眠状态响应于所述硬件事件队列的修改而终止。
7.如权利要求1所述的系统,进一步包括状态寄存器,其包括状态位,所述状态位中的每一个与所述特殊列表上的设备队列相关联,所述状态位被设置为指示所述特殊列表上的所述设备队列中的事件的可用性,其中,所述忙碌轮询包括监视所述状态寄存器。
8.如权利要求7所述的系统,其特征在于,所述忙碌轮询包括在与包括所述状态寄存器的高速缓存行相关联的处理器上执行monitor指令和mwait指令,所述monitor和mwait指令被配置为使得所述处理器过渡到睡眠状态,所述睡眠状态响应于所述状态位的修改而终止。
9.如权利要求1所述的系统,其特征在于,一种处理器被配置为实现所述网络栈模块,且所述处理器被耦合到包括直接存储器访问(DMA)引擎的网络接口模块。
10.一种存储有指令的计算机可读存储介质,在由处理器执行时,所述指令引起用于减少时延的分组处理的下列操作,所述操作包括:
维护特殊列表,所述特殊列表包括标识设备队列和所述设备队列中的每一个的关联特殊套接字的条目,所述特殊套接字选自被配置为接收各分组的多个套接字;
忙碌轮询所述特殊列表上的所述设备队列;
从所述多个套接字中的一个接收分组;以及
响应于检测到由中断处理模块提供所述已接收的分组,更新所述特殊列表,所述更新包括:
标识与所述已接收的分组相关联的设备队列;
标识与所述已接收的分组相关联的套接字;以及
如果所述已标识的设备队列不处于所述特殊列表上的所述各条目中的一个上,则在所述特殊列表上创建新条目,所述新条目包括所述已标识的设备队列和所述已标识的套接字。
11.如权利要求10所述的计算机可读存储介质,进一步包括延迟所述特殊列表的所述更新的操作,直到检测到由所述中断处理模块提供的第二连续接收到的分组。
12.如权利要求10所述的计算机可读存储介质,进一步包括以下所述操作:
检测在套接字和设备队列之间的关联的改变;
判断所述已改变的套接字是否处于所述特殊列表上的所述各条目中的一个上;以及
响应于所述判断,从所述特殊列表移除包括所述已改变的套接字的所述条目。
13.如权利要求10所述的计算机可读存储介质,其特征在于,所述中断处理模块是计时器驱动的。
14.如权利要求10所述的计算机可读存储介质,其特征在于,所述忙碌轮询包括从被配置为响应于所述特殊列表上的所述设备队列中的事件的可用性生成所述通知的硬件事件队列接收通知的操作。
15.如权利要求14所述的计算机可读存储介质,进一步包括在与包括所述硬件事件队列的高速缓存行相关联的处理器上执行monitor指令和mwait指令的操作,所述monitor和mwait指令被配置为使得所述处理器过渡到睡眠状态,所述睡眠状态响应于所述硬件事件队列的修改而终止。
16.如权利要求10所述的计算机可读存储介质,其特征在于,所述忙碌轮询包括监视状态寄存器的操作,所述状态寄存器包括状态位,所述状态位中的每一个与所述特殊列表上的设备队列相关联,所述状态位被设置为指示所述特殊列表上的所述设备队列中的事件的可用性。
17.如权利要求16所述的计算机可读存储介质,进一步包括在与包括所述状态寄存器的高速缓存行相关联的处理器上执行monitor指令和mwait指令的操作,所述monitor和mwait指令被配置为使得所述处理器过渡到睡眠状态,所述睡眠状态响应于所述状态位的修改而终止。
18.一种其上存储有指令的计算机可读存储介质,在由处理器执行时,所述指令引起用于减少时延的分组处理的下列操作,所述操作包括:
维护被配置为把各设备队列映射到特殊套接字以及附加套接字的冲突列表的散列表,所述特殊套接字和所述附加套接字与所述设备队列相关联;
在所述散列表上忙碌轮询所述设备队列;
从轮询系统调用接收新套接字登记;
标识与所述新套接字相关联的设备队列;以及
如果所述已标识的设备队列不处于所述散列表中,则
在用于所述已标识的设备队列的所述散列表中创建新条目,所述新条目包括作为所述特殊套接字的所述新套接字,且进一步包括空的冲突列表;
如果所述已标识的设备队列处于所述散列表中,则
把所述新套接字添加到所述散列表中用于所述设备队列条目的所述冲突列表。
19.如权利要求18所述的计算机可读存储介质,进一步包括以下操作:
检测在套接字和设备队列之间的关联的改变;
如果所述已改变的套接字处于与所述设备队列相关联的所述冲突列表上,则从所述冲突列表移除所述已改变的套接字;
如果所述已改变的套接字是与所述设备队列相关联的所述特殊套接字,且与所述设备队列相关联的所述冲突列表是空的,则删除所述散列表中用于所述设备队列的所述条目;以及
如果所述已改变的套接字是与所述设备队列相关联的所述特殊套接字,且与所述设备队列相关联的所述冲突列表不是空的,则用所述冲突列表上的所述套接字中的一个代替与所述设备队列相关联的所述特殊套接字。
20.如权利要求18所述的计算机可读存储介质,其特征在于,所述忙碌轮询包括从被配置为响应于所述特殊列表上的所述设备队列中的事件的可用性生成所述通知的硬件事件队列接收通知的操作。
21.如权利要求20所述的计算机可读存储介质,进一步包括在与包括所述硬件事件队列的高速缓存行相关联的处理器上执行monitor指令和mwait指令的操作,所述monitor和mwait指令被配置为使得所述处理器过渡到睡眠状态,所述睡眠状态响应于所述硬件事件队列的修改而终止。
22.如权利要求18所述的计算机可读存储介质,其特征在于,所述忙碌轮询包括监视状态寄存器的操作,所述状态寄存器包括状态位,所述状态位中的每一个与所述特殊列表上的设备队列相关联,所述状态位被设置为指示所述特殊列表上的所述设备队列中的事件的可用性。
23.如权利要求22所述的所述计算机可读存储介质,进一步包括在与包括所述状态寄存器的高速缓存行相关联的处理器上执行monitor指令和mwait指令的操作,所述monitor和mwait指令被配置为使得所述处理器过渡到睡眠状态,所述睡眠状态响应于所述状态位的修改而终止。
24.一种用于减少时延的分组处理的方法,所述方法包括:
维护特殊列表,所述特殊列表包括标识设备队列和所述设备队列中的每一个的关联特殊套接字的条目,所述特殊套接字选自被配置为接收各分组的多个套接字;
忙碌轮询所述特殊列表上的所述设备队列;
从所述多个套接字中的一个接收分组;以及
响应于检测到由中断处理模块提供所述已接收的分组,更新所述特殊列表,所述更新包括:
标识与所述已接收的分组相关联的设备队列;
标识与所述已接收的分组相关联的套接字;以及
如果所述已标识的设备队列不处于所述特殊列表上的所述各条目中的一个上,则在所述特殊列表上创建新条目,所述新条目包括所述已标识的设备队列和所述已标识的套接字。
25.如权利要求24所述的方法,进一步包括延迟所述特殊列表的所述更新,直到检测到由所述中断处理模块提供的第二连续接收到的分组。
26.如权利要求24所述的方法,进一步包括:
检测在套接字和设备队列之间的关联的改变;
判断所述已改变的套接字是否处于所述特殊列表上的所述各条目中的一个上;以及
响应于所述判断,从所述特殊列表移除包括所述已改变的套接字的所述条目。
27.如权利要求24所述的方法,其特征在于,所述忙碌轮询包括从被配置为响应于所述特殊列表上的所述设备队列中的事件的可用性生成所述通知的硬件事件队列接收通知。
28.如权利要求27所述的方法,进一步包括在与包括所述硬件事件队列的高速缓存行相关联的处理器上执行monitor指令和mwait指令,所述monitor和mwait指令被配置为使得所述处理器过渡到睡眠状态,所述睡眠状态响应于所述硬件事件队列的修改而终止。
29.如权利要求24所述的方法,其特征在于,所述忙碌轮询包括监视状态寄存器,所述状态寄存器包括状态位,所述状态位中的每一个与所述特殊列表上的设备队列相关联,所述状态位被设置为指示所述特殊列表上的所述设备队列中的事件的可用性。
30.如权利要求29所述的方法,进一步包括在与包括所述状态寄存器的高速缓存行相关联的处理器上执行monitor指令和mwait指令,所述monitor和mwait指令被配置为使得所述处理器过渡到睡眠状态,所述睡眠状态响应于所述状态位的修改而终止。
CN201410401396.0A 2013-08-14 2014-08-14 具有减少时延的分组处理的套接字管理 Active CN104376036B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/966,761 2013-08-14
US13/966,761 US9558132B2 (en) 2013-08-14 2013-08-14 Socket management with reduced latency packet processing

Publications (2)

Publication Number Publication Date
CN104376036A true CN104376036A (zh) 2015-02-25
CN104376036B CN104376036B (zh) 2018-02-23

Family

ID=52466822

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410401396.0A Active CN104376036B (zh) 2013-08-14 2014-08-14 具有减少时延的分组处理的套接字管理

Country Status (3)

Country Link
US (2) US9558132B2 (zh)
JP (1) JP5925846B2 (zh)
CN (1) CN104376036B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104731616A (zh) * 2015-03-25 2015-06-24 浪潮集团有限公司 一种关闭Linux OS下Intel CPU节能模式的方法
CN106921590A (zh) * 2015-12-26 2017-07-04 英特尔公司 应用级网络排队

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10158585B2 (en) 2013-02-21 2018-12-18 Intel Corporation Packet processing with reduced latency
US9936051B2 (en) 2015-07-07 2018-04-03 International Business Machines Corporation Managing network sockets
CN106650465B (zh) * 2015-10-30 2021-01-29 阿里巴巴集团控股有限公司 应用于虚拟化场景的安全通信方法及设备
US11061730B2 (en) * 2016-11-18 2021-07-13 Red Hat Israel, Ltd. Efficient scheduling for hyper-threaded CPUs using memory monitoring
US10862617B2 (en) * 2017-05-30 2020-12-08 Marvell Asia Pte, Ltd. Flowlet scheduler for multicore network processors
US10681008B1 (en) * 2017-12-12 2020-06-09 Virtuozzo International Gmbh Use of checkpoint restore in user space for network socket management
JP7251648B2 (ja) * 2019-10-08 2023-04-04 日本電信電話株式会社 サーバ内遅延制御システム、サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム
US20230029932A1 (en) * 2019-12-23 2023-02-02 Nippon Telegraph And Telephone Corporation Server delay control device, server delay control method, and program
US11467843B2 (en) 2020-06-18 2022-10-11 Samsung Electronics Co., Ltd. Systems, methods, and devices for queue availability monitoring
JPWO2022172366A1 (zh) * 2021-02-10 2022-08-18
CN116982030A (zh) * 2021-03-18 2023-10-31 日本电信电话株式会社 服务器内延迟控制装置、服务器内延迟控制方法和程序
WO2023144878A1 (ja) * 2022-01-25 2023-08-03 日本電信電話株式会社 サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101719833A (zh) * 2009-12-09 2010-06-02 南京联创科技集团股份有限公司 将多线程框架用于在线计费网络服务的方法
US20130110968A1 (en) * 2011-11-02 2013-05-02 Neil R.T. Horman Reducing latency in multicast traffic reception
US20130151743A1 (en) * 2008-12-02 2013-06-13 International Business Machines Corporation Network adaptor optimization and interrupt reduction

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088740A (en) * 1997-08-05 2000-07-11 Adaptec, Inc. Command queuing system for a hardware accelerated command interpreter engine
JP2000209216A (ja) 1999-01-12 2000-07-28 Shimada Phys & Chem Ind Co Ltd アドレス管理方法及び装置、記録媒体
JP2001216170A (ja) 2000-01-31 2001-08-10 Mitsubishi Electric Corp 専用ポーリング処理組み込みオペレーティング方法及び専用ポーリング処理組み込みオペレーティングシステム
US7213093B2 (en) * 2003-06-27 2007-05-01 Intel Corporation Queued locks using monitor-memory wait
JP2007027951A (ja) 2005-07-13 2007-02-01 Matsushita Electric Ind Co Ltd Dmaコントローラおよび通信処理装置
WO2007038606A2 (en) * 2005-09-26 2007-04-05 John Bruno High-speed input/output signaling mechanism
US8116312B2 (en) * 2006-02-08 2012-02-14 Solarflare Communications, Inc. Method and apparatus for multicast packet reception
US8020166B2 (en) * 2007-01-25 2011-09-13 Hewlett-Packard Development Company, L.P. Dynamically controlling the number of busy waiters in a synchronization object
US8041854B2 (en) * 2007-09-28 2011-10-18 Intel Corporation Steering data units to a consumer
JP5148236B2 (ja) * 2007-10-01 2013-02-20 ルネサスエレクトロニクス株式会社 半導体集積回路及び半導体集積回路の制御方法
JP5328225B2 (ja) * 2008-05-14 2013-10-30 キヤノン株式会社 デバイス監視装置及びその制御方法、デバイス監視システム、並びにプログラム
JP2010004470A (ja) 2008-06-23 2010-01-07 Alps Electric Co Ltd アンテナ装置
US20130024875A1 (en) * 2011-07-22 2013-01-24 Yilin Wang Event System And Methods For Using Same
US8924501B2 (en) * 2011-11-30 2014-12-30 Red Hat Israel, Ltd. Application-driven shared device queue polling
US9009702B2 (en) * 2011-11-30 2015-04-14 Red Hat Israel, Ltd. Application-driven shared device queue polling in a virtualized computing environment
US10158585B2 (en) 2013-02-21 2018-12-18 Intel Corporation Packet processing with reduced latency

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130151743A1 (en) * 2008-12-02 2013-06-13 International Business Machines Corporation Network adaptor optimization and interrupt reduction
CN101719833A (zh) * 2009-12-09 2010-06-02 南京联创科技集团股份有限公司 将多线程框架用于在线计费网络服务的方法
US20130110968A1 (en) * 2011-11-02 2013-05-02 Neil R.T. Horman Reducing latency in multicast traffic reception

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104731616A (zh) * 2015-03-25 2015-06-24 浪潮集团有限公司 一种关闭Linux OS下Intel CPU节能模式的方法
CN106921590A (zh) * 2015-12-26 2017-07-04 英特尔公司 应用级网络排队
US10547559B2 (en) 2015-12-26 2020-01-28 Intel Corporation Application-level network queueing
US11706151B2 (en) 2015-12-26 2023-07-18 Intel Corporation Application-level network queueing

Also Published As

Publication number Publication date
US20170214630A1 (en) 2017-07-27
JP5925846B2 (ja) 2016-05-25
CN104376036B (zh) 2018-02-23
US20150049769A1 (en) 2015-02-19
JP2015036991A (ja) 2015-02-23
US9558132B2 (en) 2017-01-31
US10305813B2 (en) 2019-05-28

Similar Documents

Publication Publication Date Title
CN104376036A (zh) 具有减少时延的分组处理的套接字管理
US9477501B2 (en) Encapsulation of an application for virtualization
EP2269132B1 (en) Storage system and control method thereof as well as program
US8918673B1 (en) Systems and methods for proactively evaluating failover nodes prior to the occurrence of failover events
US20110307887A1 (en) Dynamic virtual machine shutdown without service interruptions
US20160124762A1 (en) Guest idle based vm request completion processing
US8996774B2 (en) Performing emulated message signaled interrupt handling
CN102314377A (zh) 加速器及其实现支持虚拟机迁移的方法
US8886862B2 (en) Virtualization of interrupts
US20210326177A1 (en) Queue scaling based, at least, in part, on processing load
KR102513961B1 (ko) 멀티 운영시스템을 지닌 전자장치 및 이의 동적 메모리 관리 방법
CN108090003A (zh) 一种基于零拷贝的提升web服务器性能的方法、系统
US9774540B2 (en) Packet drop based dynamic receive priority for network devices
CN115934389A (zh) 用于错误报告和处理的系统和方法
WO2014149519A1 (en) Flow director-based low latency networking
CN104580194A (zh) 面向视频应用的虚拟化资源管理方法及装置
US11126575B1 (en) Interrupt recovery management
US11061840B2 (en) Managing network interface controller-generated interrupts
US10642667B1 (en) Apparatus, system, and method for efficiently sharing data between processes
US7853757B2 (en) Avoiding failure of an initial program load in a logical partition of a data storage system
CN108881060A (zh) 一种处理通信报文的方法及装置
WO2019004880A1 (en) POWER MANAGEMENT OF AN EVENT BASED PROCESSING DEVICE
US8719499B2 (en) Cache-line based notification
WO2019169582A1 (zh) 处理中断的方法和装置
KR20170031131A (ko) 가상 스트림 및 처리 에이전트를 이용한 스트림 기반 이벤트 처리 기법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant