CN114826983B - Virtio网络设备延时定位方法、处理单元及virtio网络设备 - Google Patents

Virtio网络设备延时定位方法、处理单元及virtio网络设备 Download PDF

Info

Publication number
CN114826983B
CN114826983B CN202210642554.6A CN202210642554A CN114826983B CN 114826983 B CN114826983 B CN 114826983B CN 202210642554 A CN202210642554 A CN 202210642554A CN 114826983 B CN114826983 B CN 114826983B
Authority
CN
China
Prior art keywords
module
time
virtio
data packet
network
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.)
Active
Application number
CN202210642554.6A
Other languages
English (en)
Other versions
CN114826983A (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.)
Shenzhen Yunbao Intelligent Co ltd
Original Assignee
Shenzhen Yunbao Intelligent 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 Shenzhen Yunbao Intelligent Co ltd filed Critical Shenzhen Yunbao Intelligent Co ltd
Priority to CN202210642554.6A priority Critical patent/CN114826983B/zh
Publication of CN114826983A publication Critical patent/CN114826983A/zh
Application granted granted Critical
Publication of CN114826983B publication Critical patent/CN114826983B/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
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • H04L43/106Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9084Reactions to storage capacity overflow
    • H04L49/9089Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
    • H04L49/9094Arrangements for simultaneous transmit and receive, e.g. simultaneous reading/writing from/to the storage element

Abstract

本申请提供了一种VIRTIO网络设备延时定位方法、处理单元及VIRTIO网络设备。该方法包括获取VIRITO前端网络驱动的当前系统时间,并将当前系统时间写入时间同步模块中;在待发送的网络数据包的头部或者尾部增加时间戳,形成更新后的网络数据包,更新后的网络数据包存储在VIRITO前端网络驱动中的;获取更新后的网络数据包被发送至描述符表读取模块的第一时刻、已用环表更新模块的第二时刻、消息中断模块的第三时刻和以太网数据包接口模块的第四时刻;根据第一时刻、第二时刻、第三时刻以及第四时刻分别与时间戳的差值,定位VIRTIO网络设备中发生延时的模块。本方案实现了对VIRTIO网络设备延时的精准定位。

Description

VIRTIO网络设备延时定位方法、处理单元及VIRTIO网络设备
技术领域
本申请涉及云计算领域,具体而言,涉及一种VIRTIO网络设备延时定位方法、处理单元、及VIRTIO网络设备。
背景技术
云计算虚拟化技术中,为了让多个GuestOS(GuestOperationSystem,客户机操作系统)可以独立于HostOS(HostOperationSystem,主机操作系统)运行在同一个硬件上,通常需要增加一个虚拟化层来实现。该虚拟化层称为VMM(VirtualMachineMonitor,虚拟机监视器,运行在主机操作系统上,用来支撑多个虚拟机运行的软件)。QEMU(MachineEmulatorandVirtualizer,机器模拟及虚拟化软件)作为一个VMM提供了全虚拟化环境,在全虚拟化环境中,客户机操作系统不感知自己是虚拟机,也无需修改客户机操作系统。但是由于所有操作都需要软件模拟,设备访问过程中,频繁的陷入/陷出带来了严重的性能问题,因此半虚拟化技术VIRTIO(VirtualI/ODevice,虚拟化I/O设备)应运而生。
VIRTIO是一个通用的半虚拟化I/O框架,VMM通过它模拟出一系列的虚拟化设备。VIRTIO框架主要包含三个部分:前端驱动(Front-endDriver)、后端设备(Back-endDevice)以及虚拟化队列(Virtqueue,VIRTIO前端驱动和VIRTIO后端设备交互数据的队列结构)。其中,前端驱动为虚拟机内部的VIRTIO模拟设备(比如常见的VIRTIO网络设备,VIRTIO磁盘设备等)对应的驱动,前端驱动的作用是接收用户态的请求,然后按照协议将这些请求进行封装,发送到后端设备;后端设备通常在QEMU中实现,后端设备用来接收前端驱动发过来的I/O请求,然后对接收的数据进行解析,并从实际物理设备上完成收、发请求,并最终通过中断机制通知前端驱动;前端和后端的数据通过Virtqueue队列进行交互。
相关技术中,一个VIRTIO网络设备收发报文需要经过很多步骤,在实际部署与应用时,如果出现延时较长的情况,往往很难定位是哪个步骤出的问题。
发明内容
本申请的主要目的在于提供一种VIRTIO网络设备延时定位方法、处理单元、VIRTIO网络设备、计算机可读存储介质与处理器,以解决现有技术中在VIRTIO网络设备出现延时,难以定位发生延时的步骤的问题。
为了实现上述目的,根据本申请的一个方面,提供了一种VIRTIO网络设备延时定位方法,所述VIRTIO网络设备包括VIRITO前端网络驱动和VIRTIO后端网络设备,所述VIRTIO后端网络设备包括时间同步模块、描述符表读取模块、已用环表更新模块、消息中断模块和以太网数据包接口模块,包括:获取VIRITO前端网络驱动的当前系统时间,并将所述当前系统时间写入所述时间同步模块中,所述时间同步模块用于将所述当前系统时间和所述VIRTIO后端网络设备的本地时钟获取的硬件时间进行同步;在待发送的网络数据包的头部或者尾部增加时间戳,形成更新后的网络数据包,所述更新后的网络数据包存储在所述VIRITO前端网络驱动中的;获取所述更新后的网络数据包被发送至描述符表读取模块的第一时刻、所述已用环表更新模块的第二时刻、所述消息中断模块的第三时刻和所述以太网数据包接口模块的第四时刻;根据所述第一时刻、所述第二时刻、所述第三时刻以及所述第四时刻分别与所述时间戳的差值,定位所述VIRTIO网络设备中发生延时的模块。
可选地,根据所述第一时刻、所述第二时刻、所述第三时刻以及所述第四时刻分别与所述时间戳的差值,定位所述VIRTIO网络设备中发生延时的模块,包括至少以下之一:将四个所述差值中最大的所述差值对应的模块确定为所述VIRTIO网络设备发生延时的模块;将四个所述差值中最大的所述差值对应的模块,和次大的所述差值对应的模块确定为所述VIRTIO网络设备发生延时的模块。
可选地,在待发送的网络数据包的头部或者尾部增加时间戳,形成更新后的网络数据包之后,所述方法还包括:采用描述符表表征所述网络数据包的缓存信息,所述缓存信息包括多个数据缓存地址、多个数据缓存长度、多个标志以及多个下一跳指针;通过多个所述下一跳指针将所述描述符表串连成数据链。
可选地,在通过多个所述下一跳指针将所述描述符表串连成数据链之后,所述方法还包括:将所述数据链的首地址写入可用环表的当前索引所指向的位置;更新所述当前索引的索引值。
可选地,在更新所述当前索引的索引值之后,所述方法还包括:根据所述可用环表的所述当前索引,读取所述可用环表的指针值;根据所述指针值读取所述描述符表。
可选地,所述时间戳的长度为8字节。
可选地,所述时间戳的高32位用于表示从历史时间到所述当前系统时间的秒数,所述时间戳的低32位用于表示秒的小数部分。
根据本申请的一个方面,提供了一种处理单元,VIRTIO网络设备包括VIRITO前端网络驱动和VIRTIO后端网络设备,所述处理单元分别与所述VIRITO前端网络驱动和所述VIRTIO后端网络设备交互,所述VIRTIO后端网络设备包括时间同步模块、描述符表读取模块、已用环表更新模块、消息中断模块和以太网数据包接口模块,包括:第一获取模块,用于获取VIRITO前端网络驱动的当前系统时间,并将所述当前系统时间写入所述时间同步模块中,所述时间同步模块用于将所述当前系统时间和所述VIRTIO后端网络设备的本地时钟获取的硬件时间进行同步;新增模块,用于在待发送的网络数据包的头部或者尾部增加时间戳,形成更新后的网络数据包,所述更新后的网络数据包存储在所述VIRITO前端网络驱动中的;第二获取模块,用于获取所述更新后的网络数据包被发送至描述符表读取模块的第一时刻、所述已用环表更新模块的第二时刻、所述消息中断模块的第三时刻和所述以太网数据包接口模块的第四时刻;定位模块,用于根据所述第一时刻、所述第二时刻、所述第三时刻以及所述第四时刻分别与所述时间戳的差值,定位所述VIRTIO网络设备中发生延时的模块。
根据本申请的一个方面,提供了一种VIRTIO网络设备,包括VIRITO前端网络驱动和VIRTIO后端网络设备,所述VIRTIO后端网络设备包括时间同步模块、描述符表读取模块、已用环表更新模块、消息中断模块、以太网数据包接口模块和控制器,所述VIRITO前端网络驱动包括处理模块和增加模块,所述处理模块被配置为获取VIRITO前端网络驱动的当前系统时间,并将所述当前系统时间写入VIRTIO后端网络设备的时间同步模块中;所述时间同步模块被配置为将所述当前系统时间和所述VIRTIO后端网络设备的本地时钟获取的硬件时间进行同步;所述增加模块被配置为在待发送的网络数据包的头部或者尾部增加时间戳,形成更新后的网络数据包;所述描述符表读取模块被配置为获取所述更新后的网络数据包被发送至所述描述符表读取模块的第一时刻;所述已用环表更新模块被配置为获取所述更新后的网络数据包被发送至所述已用环表更新模块的第二时刻;所述消息中断模块被配置为获取所述更新后的网络数据包被发送至所述消息中断模块的第三时刻;所述以太网数据包接口模块被配置为获取所述更新后的网络数据包被发送至所述以太网数据包接口模块的第四时刻;处理器被配置为根据所述第一时刻、所述第二时刻、所述第三时刻以及所述第四时刻分别与所述时间戳的差值,定位VIRTIO网络设备发生延时的模块。
可选地,所述描述符表读取模块还被配置为读取描述符表,所述描述符表用于表征所述网络数据包的缓存信息,所述缓存信息包括多个数据缓存地址、多个数据缓存长度、多个标志以及多个下一跳指针。
可选地,所述描述符表读取模块还被配置为根据所述描述符表指向的数据缓存地址,获取所述数据缓存地址存储的网络数据包,将所述网络数据包发送至所述以太网数据包接口模块。
可选地,所述已用环表更新模块还被配置为更新已用环表当前索引所指向地址中的信息,所述信息包括字节指针和字节长度。
可选地,所述消息中断模块还被配置为读取可用环表中的FLAG标志,根据所述FLAG标志确认VIRITO驱动的中断抑制功能是否处于打开状态,若是,则不进行后续发MSI-X中断的步骤,若否,则进行后续发MSI-X中断的步骤。
可选地,所述消息中断模块还被配置为在进行后续发MSI-X中断的步骤的情况下,读取MSI-X中断表,发送中断消息至所述VIRITO前端网络驱动。
根据本申请的一个方面,提供了一种VIRTIO网络设备,包括VIRITO前端网络驱动、VIRTIO后端网络设备和处理单元,所述处理单元分别与所述VIRITO前端网络驱动和所述VIRTIO后端网络设备进行通信,所述处理单元用于执行任意一种所述的方法。
根据本申请的一个方面,提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行任意一种所述的方法。
根据本申请的一个方面,提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行任意一种所述的方法。
应用本申请的技术方案,通过对当前系统时间和硬件时间进行同步、在待发送的网络数据包的头部或者尾部增加时间戳、以及获取更新后的网络数据包被发送至描述符表读取模块的第一时刻、上述已用环表更新模块的第二时刻、上述消息中断模块的第三时刻和上述以太网数据包接口模块的第四时刻,由于对当前系统时间和硬件时间进行了同步,使得获取得到的第一时刻、上述第二时刻、上述第三时刻以及上述第四时刻分别与上述时间戳的差值是准确的,进而可以精确确定发生延时的模块,即定位VIRTIO网络设备的延时。方便了性能评估及线上运维。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了根据本申请的实施例的VIRTIO网络设备延时定位方法流程图;
图2示出了根据本申请的实施例的VIRTIO网络设备结构示意图;
图3示出了根据本申请的实施例的处理单元示意图;
图4示出了根据本申请的实施例的一种具体的VIRTIO网络设备收包流程图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应该理解的是,当元件(诸如层、膜、区域、或衬底)描述为在另一元件“上”时,该元件可直接在该另一元件上,或者也可存在中间元件。而且,在说明书以及权利要求书中,当描述有元件“连接”至另一元件时,该元件可“直接连接”至该另一元件,或者通过第三元件“连接”至该另一元件。
为了便于描述,以下对本申请实施例涉及的部分名词或术语进行说明:
VIRITO前端网络驱动:为虚拟机内部的VIRTIO模拟设备(比如常见的VIRTIO网络设备、VIRTIO磁盘设备等)对应的驱动,前端驱动的作用是接收用户态的请求,然后按照协议将这些请求进行封装,发送到后端设备。
根据本申请的实施例,提供了一种VIRTIO网络设备延时定位方法。
图1是根据本申请实施例的VIRTIO网络设备延时定位方法的流程图。如图2所示,上述VIRTIO网络设备包括VIRITO前端网络驱动和VIRTIO后端网络设备,上述VIRTIO后端网络设备包括时间同步模块、描述符表读取模块、已用环表更新模块、消息中断模块和以太网数据包接口模块,如图1所示,该方法包括以下步骤:
步骤S101,获取VIRITO前端网络驱动的当前系统时间,并将上述当前系统时间写入上述时间同步模块中,上述时间同步模块用于将上述当前系统时间和上述VIRTIO后端网络设备的本地时钟获取的硬件时间进行同步;
上述步骤S101中,时间同步模块对当前系统时间和硬件时间的同步是不间断进行的,例如每隔5S、10S、15S等同步一次,以保证当前系统时间和硬件时间时刻同步;
步骤S102,在待发送的网络数据包的头部或者尾部增加时间戳,形成更新后的网络数据包,上述更新后的网络数据包存储在上述VIRITO前端网络驱动中的;
步骤S103,获取上述更新后的网络数据包被发送至描述符表读取模块的第一时刻、上述已用环表更新模块的第二时刻、上述消息中断模块的第三时刻和上述以太网数据包接口模块的第四时刻;
步骤S104,根据上述第一时刻、上述第二时刻、上述第三时刻以及上述第四时刻分别与上述时间戳的差值,定位上述VIRTIO网络设备中发生延时的模块。
上述方案中,通过对当前系统时间和硬件时间进行同步、在待发送的网络数据包的头部或者尾部增加时间戳、以及获取更新后的网络数据包被发送至描述符表读取模块的第一时刻、上述已用环表更新模块的第二时刻、上述消息中断模块的第三时刻和上述以太网数据包接口模块的第四时刻,由于对当前系统时间和硬件时间进行了同步,使得获取得到的第一时刻、上述第二时刻、上述第三时刻以及上述第四时刻分别与上述时间戳的差值是准确的,进而可以精确确定发生延时的模块,即定位VIRTIO网络设备的延时。方便了性能评估及线上运维。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图2所示的实施例中,在服务器主机操作系统上同时运行着多个虚拟机。虚拟机内部运行着客户机操作系统,在客户机操作系统里面加载着VIRTIO前端驱动,一个虚拟机可以同时加载多个VIRTIO前端驱动。硬件部分(可以是智能网卡)通过SR-IOV(单根I/O虚拟化,一种将单个PCIe总线设备虚拟化出多个虚拟功能的技术)技术将单个PCIe(PeripheralComponent Interconnect express,高速串行计算机扩展总线接口)控制器虚拟化成多个VF(Virtual Function,虚拟功能,VF是一种轻量级PCIe功能。VF由PF(Physical Function,物理功能,PF是全功能的PCIe功能)控制)设备(VirtualFunction,虚拟功能设备)。在每个VF设备中利用硬件逻辑实现VIRTIO后端磁盘设备功能、后端网络设备功能。然后将这些VF设备透传到一个个客户虚拟机中。图2中,硬件设备发起虚拟机内物理地址(GPA,客户机物理地址)读写时,需要借助Intel VT-d IO虚拟化技术,利用IOMMU(IO Memory ManagementUnit,IO内存管理单元)实现GPA到HPA(主机物理地址)的转换。图2中,上述VIRTIO后端网络设备功能实现在FPGA(FieldProgrammableGateArray,现场可编程门阵列)或专用芯片(比如DPU,DataProcessingUnit)中。服务器主机操作系统中运行着一个个虚拟机客户机操作系统。客户机操作系统中运行着改动后的VIRTIO前端网络驱动。硬件部分通常实现在FPGA(FieldProgrammableGateArray,现场可编程门阵列)或专用芯片中(比如DPU,DataProcessingUnit)。Intel VT-d IO虚拟化技术实现在CPU中。VMM和虚拟机均为主机操作系统上运行的软件。虚拟机中运行客户机操作系统,一般是标准操作系统。
在一些实施例中,根据上述第一时刻、上述第二时刻、上述第三时刻以及上述第四时刻分别与上述时间戳的差值,定位上述VIRTIO网络设备中发生延时的模块,包括至少以下之一:将四个上述差值中最大的上述差值对应的模块确定为上述VIRTIO网络设备发生延时的模块;或将四个上述差值中最大的上述差值对应的模块,和次大的上述差值对应的模块确定为上述VIRTIO网络设备发生延时的模块。
在一些实施例中,在待发送的网络数据包的头部或者尾部增加时间戳,形成更新后的网络数据包之后,上述方法还包括:采用描述符表表征上述网络数据包的缓存信息,上述缓存信息包括多个数据缓存地址、多个数据缓存长度、多个标志以及多个下一跳指针;通过多个上述下一跳指针将上述描述符表串连成数据链。
在一些实施例中,在通过多个上述下一跳指针将上述描述符表串连成数据链之后,上述方法还包括:将上述数据链的首地址写入可用环表的当前索引所指向的位置;更新上述当前索引的索引值。
在一些实施例中,在更新上述当前索引的索引值之后,上述方法还包括:根据上述可用环表的上述当前索引,读取上述可用环表的指针值;根据上述指针值读取上述描述符表。
在一些实施例中,上述时间戳的长度为8字节。当然,本领域技术人员可以选择合适长度得时间戳。
在一些实施例中,上述时间戳的高32位用于表示从历史时间到上述当前系统时间的秒数,上述时间戳的低32位用于表示秒的小数部分。一种具体的例子如下:
8000_0000表示2^(-1)=0.5秒;
C000_0000表示2^(-1)+2^(-2)=0.75秒;
C001_0000表示2^(-1)+2^(-2)+2^(-16)=0.750015秒,依次类推,上述表示方法可以达到纳秒级精度。
更进一地,利用上述时间戳机制,可以分别在描述符读取模块、已用环表更新模块、MSI-X中断模块以及以太网数据包接口模块中分别记录数据包从被软件发出到到达本模块的延时间(可以增加3个寄存器分别记录最大、最小及平均延时)。如果两个互联主机的时间保持同步,且两个主机均安装有本发明的VIRTIO网络设备中,利用上述延时信息可以测量出两个主机所在网络环境导致的延时。
本申请实施例还提供了一种处理单元,需要说明的是,本申请实施例的处理单元可以用于执行本申请实施例所提供的用于VIRTIO网络设备延时定位方法。以下对本申请实施例提供的处理单元进行介绍。
图3是根据本申请实施例的处理单元的示意图。VIRTIO网络设备包括VIRITO前端网络驱动和VIRTIO后端网络设备,上述处理单元分别与上述VIRITO前端网络驱动和上述VIRTIO后端网络设备交互,上述VIRTIO后端网络设备包括时间同步模块、描述符表读取模块、已用环表更新模块、消息中断模块和以太网数据包接口模块,如图3所示,该处理单元包括:
第一获取模块10,用于获取VIRITO前端网络驱动的当前系统时间,并将上述当前系统时间写入上述时间同步模块中,上述时间同步模块用于将上述当前系统时间和上述VIRTIO后端网络设备的本地时钟获取的硬件时间进行同步;
新增模块20,用于在待发送的网络数据包的头部或者尾部增加时间戳,形成更新后的网络数据包,上述更新后的网络数据包存储在上述VIRITO前端网络驱动中;
第二获取模块30,用于获取上述更新后的网络数据包被发送至描述符表读取模块的第一时刻、上述已用环表更新模块的第二时刻、上述消息中断模块的第三时刻和上述以太网数据包接口模块的第四时刻;
定位模块40,用于根据上述第一时刻、上述第二时刻、上述第三时刻以及上述第四时刻分别与上述时间戳的差值,定位上述VIRTIO网络设备中发生延时的模块。
上述处理单元,通过对当前系统时间和硬件时间进行同步、在待发送的网络数据包的头部或者尾部增加时间戳、以及获取更新后的网络数据包被发送至描述符表读取模块的第一时刻、上述已用环表更新模块的第二时刻、上述消息中断模块的第三时刻和上述以太网数据包接口模块的第四时刻,由于对当前系统时间和硬件时间进行了同步,使得获取得到的第一时刻、上述第二时刻、上述第三时刻以及上述第四时刻分别与上述时间戳的差值是准确的,进而可以精确确定发生延时的模块,即定位VIRTIO网络设备的延时。方便了性能评估及线上运维。
在一些实施例中,定位模块包括第一定位子模块和第二定位子模块,第一定位子模块用于将四个上述差值中最大的上述差值对应的模块确定为上述VIRTIO网络设备发生延时的模块;第二定位子模块用于将四个上述差值中最大的上述差值对应的模块,和次大的上述差值对应的模块确定为上述VIRTIO网络设备发生延时的模块。
在一些实施例中,上述处理单元还包括表征模块和串连模块,表征模块用于在待发送的网络数据包的头部或者尾部增加时间戳,形成更新后的网络数据包之后,采用描述符表表征上述网络数据包的缓存信息,上述缓存信息包括多个数据缓存地址、多个数据缓存长度、多个标志以及多个下一跳指针;串连模块用于通过多个上述下一跳指针将上述描述符表串连成数据链。
在一些实施例中,上述处理单元还包括写入模块和更新模块,写入模块用于在通过多个上述下一跳指针将上述描述符表串连成数据链之后,将上述数据链的首地址写入可用环表的当前索引所指向的位置;更新模块用于更新上述当前索引的索引值。
在一些实施例中,上述处理单元还包括第一读取模块和第二读取模块,第一读取模块用于在更新上述当前索引的索引值之后,根据上述可用环表的上述当前索引,读取上述可用环表的指针值;第二读取模块用于根据上述指针值读取上述描述符表。
上述处理单元包括处理器和存储器,上述第一获取模块、新增模块、第二获取模块和定位模块等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来定位VIRTIO网络设备的延时。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种计算机可读存储介质,上述计算机可读存储介质包括存储的程序,其中,在上述程序运行时控制上述计算机可读存储介质所在设备执行上述VIRTIO网络设备延时定位方法。
本发明实施例提供了一种处理器,上述处理器用于运行程序,其中,上述程序运行时执行上述VIRTIO网络设备延时定位方法。
本发明实施例提供了一种VIRTIO网络设备,包括VIRITO前端网络驱动和VIRTIO后端网络设备,上述VIRTIO后端网络设备包括时间同步模块、描述符表读取模块、已用环表更新模块、消息中断模块、以太网数据包接口模块和控制器,上述VIRITO前端网络驱动包括处理模块和增加模块,上述处理模块被配置为获取VIRITO前端网络驱动的当前系统时间,并将上述当前系统时间写入VIRTIO后端网络设备的时间同步模块中;上述时间同步模块被配置为将上述当前系统时间和上述VIRTIO后端网络设备的本地时钟获取的硬件时间进行同步;上述增加模块被配置为在待发送的网络数据包的头部或者尾部增加时间戳,形成更新后的网络数据包;上述描述符表读取模块被配置为获取上述更新后的网络数据包被发送至上述描述符表读取模块的第一时刻;上述已用环表更新模块被配置为获取上述更新后的网络数据包被发送至上述已用环表更新模块的第二时刻;上述消息中断模块被配置为获取上述更新后的网络数据包被发送至上述消息中断模块的第三时刻;上述以太网数据包接口模块被配置为获取上述更新后的网络数据包被发送至上述以太网数据包接口模块的第四时刻;处理器被配置为根据上述第一时刻、上述第二时刻、上述第三时刻以及上述第四时刻分别与上述时间戳的差值,定位VIRTIO网络设备发生延时的模块。
上述VIRTIO网络设备,通过对当前系统时间和硬件时间进行同步、在待发送的网络数据包的头部或者尾部增加时间戳、以及获取更新后的网络数据包被发送至描述符表读取模块的第一时刻、上述已用环表更新模块的第二时刻、上述消息中断模块的第三时刻和上述以太网数据包接口模块的第四时刻,由于对当前系统时间和硬件时间进行了同步,使得获取得到的第一时刻、上述第二时刻、上述第三时刻以及上述第四时刻分别与上述时间戳的差值是准确的,进而可以精确确定发生延时的模块,即定位VIRTIO网络设备的延时。方便了性能评估及线上运维。
在一些实施例中,上述描述符表读取模块还被配置为读取描述符表,上述描述符表用于表征上述网络数据包的缓存信息,上述缓存信息包括多个数据缓存地址、多个数据缓存长度、多个标志以及多个下一跳指针。
在一些实施例中,上述描述符表读取模块还被配置为根据上述描述符表指向的数据缓存地址,获取上述数据缓存地址存储的网络数据包,将上述网络数据包发送至上述以太网数据包接口模块。
在一些实施例中,上述已用环表更新模块还被配置为更新已用环表当前索引所指向地址中的信息,上述信息包括字节指针和字节长度。
在一些实施例中,上述消息中断模块还被配置为读取可用环表中的FLAG标志,根据上述FLAG标志确认VIRITO驱动的中断抑制功能是否处于打开状态,若是,则不进行后续发MSI-X(Message Signaled Interrupts,基于消息的中断)中断的步骤,若否,则进行后续发MSI-X中断的步骤。
在一些实施例中,上述消息中断模块还被配置为在进行后续发MSI-X中断的步骤的情况下,读取MSI-X中断表,发送中断消息至上述VIRITO前端网络驱动。
本发明实施例提供了一种VIRTIO网络设备,包括VIRITO前端网络驱动、VIRTIO后端网络设备和处理单元,上述处理单元分别与上述VIRITO前端网络驱动和上述VIRTIO后端网络设备进行通信,上述处理单元用于执行任意一种上述的方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现至少以下步骤:
步骤S101,获取VIRITO前端网络驱动的当前系统时间,并将上述当前系统时间写入上述时间同步模块中,上述时间同步模块用于将上述当前系统时间和上述VIRTIO后端网络设备的本地时钟获取的硬件时间进行同步;
步骤S102,在待发送的网络数据包的头部或者尾部增加时间戳,形成更新后的网络数据包,上述更新后的网络数据包存储在上述VIRITO前端网络驱动中的;
步骤S103,获取上述更新后的网络数据包被发送至描述符表读取模块的第一时刻、上述已用环表更新模块的第二时刻、上述消息中断模块的第三时刻和上述以太网数据包接口模块的第四时刻;
步骤S104,根据上述第一时刻、上述第二时刻、上述第三时刻以及上述第四时刻分别与上述时间戳的差值,定位上述VIRTIO网络设备中发生延时的模块。
本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有至少如下方法步骤的程序:
步骤S101,获取VIRITO前端网络驱动的当前系统时间,并将上述当前系统时间写入上述时间同步模块中,上述时间同步模块用于将上述当前系统时间和上述VIRTIO后端网络设备的本地时钟获取的硬件时间进行同步;
步骤S102,在待发送的网络数据包的头部或者尾部增加时间戳,形成更新后的网络数据包,上述更新后的网络数据包存储在上述VIRITO前端网络驱动中的;
步骤S103,获取上述更新后的网络数据包被发送至描述符表读取模块的第一时刻、上述已用环表更新模块的第二时刻、上述消息中断模块的第三时刻和上述以太网数据包接口模块的第四时刻;
步骤S104,根据上述第一时刻、上述第二时刻、上述第三时刻以及上述第四时刻分别与上述时间戳的差值,定位上述VIRTIO网络设备中发生延时的模块。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
实施例
本实施例涉及一种具体的VIRTIO网络设备收包流程,如图4所示,包括如下步骤:
步骤0:驱动程序获取当前系统时间,并将时间值写入到VIRTIO后端网络设备的时间同步模块中,保持系统软件时间与设备硬件时间的同步。
步骤1:驱动程序预先将接收网络数据包缓存准备好,这些数据包缓存通常分成2部分,一部分12字节存放VIRITO网络设备头内容;一部分1526字节,存放数据包中除头内容之外的部分;如果VIRTIO的MERGAEGBLE这个特性协商成功,会将数据包中头内容和除头内容之外的部分放到一起,分配一个4096字节的缓存。对于接收方向,这些数据包缓存将存放接收到的网络数据包内容。对于发送方向,这些数据包缓存存放待发送网络数据包内容(内容由上层应用软件填入)。同时,在数据包的包尾增加8字节的当前系统时间(图4的位置1所示)。
步骤2:将步骤1中分配的缓存的地址及长度等信息填入描述符表中,并通过下一跳将这些描述符串成一条链。一条链对应一个网络数据包。
步骤3:将描述符表的链首地址填入可用环表的当前索引所指向的位置,同时更新索引值(即索引值+1)。
步骤4:写通知寄存器(Notify),通知后端设备发送/接收缓存已经准备好。
以上步骤0至步骤4均在VIRITO前端网络驱动中完成。
VIRTIO后端网络设备在接收到Notify通知后,执行如下步骤:
步骤5:根据可用环表中的索引,读取可用环表中的指针值,利用这些指针值读取描述符表中的相关内容。这一步通常叫做描述符读取,具体实现由描述符表读取模块完成。
对于接收方向,从以太网数据包接口模块接收到链路上接收到的数据包,利用步骤5预取到的描述符,将数据包发送到描述符所指向缓存。同时,更新已用环表当前索引所指向地址的内容(4字节指针+4字节长度)。
对于发送方向,读取描述符所指向的缓存,并将缓存内容发送到以太网数据包接口模块。发送完成后,更新已用环表当前索引所指向地址的内容(4字节指针+4字节长度)。
步骤6:读取可用环表中的FLAG标志,确认VIRITO驱动的中断抑制功能是否打开,如果打开则不进行后续发MSI-X中断的步骤;如果没开则进行后续发中断的步骤。
步骤7:MSI-X中断模块读取MSI-X(Message Signaled Interrupts,基于消息的中断)中断表,发起中断,通知软件收到网络数据包或当前数据包已发送完成。
从以上的描述中,可以看出,本申请上述的实施例实现了如下技术效果:
1)、本申请的VIRTIO网络设备延时定位方法,通过对当前系统时间和硬件时间进行同步、在待发送的网络数据包的头部或者尾部增加时间戳、以及获取更新后的网络数据包被发送至描述符表读取模块的第一时刻、上述已用环表更新模块的第二时刻、上述消息中断模块的第三时刻和上述以太网数据包接口模块的第四时刻,由于对当前系统时间和硬件时间进行了同步,使得获取得到的第一时刻、上述第二时刻、上述第三时刻以及上述第四时刻分别与上述时间戳的差值是准确的,进而可以精确确定发生延时的模块,即定位VIRTIO网络设备的延时。方便了性能评估及线上运维。
2)、本申请的VIRTIO网络设备,通过对当前系统时间和硬件时间进行同步、在待发送的网络数据包的头部或者尾部增加时间戳、以及获取更新后的网络数据包被发送至描述符表读取模块的第一时刻、上述已用环表更新模块的第二时刻、上述消息中断模块的第三时刻和上述以太网数据包接口模块的第四时刻,由于对当前系统时间和硬件时间进行了同步,使得获取得到的第一时刻、上述第二时刻、上述第三时刻以及上述第四时刻分别与上述时间戳的差值是准确的,进而可以精确确定发生延时的模块,即定位VIRTIO网络设备的延时。方便了性能评估及线上运维。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (14)

1.一种VIRTIO网络设备延时定位方法,其特征在于,所述VIRTIO网络设备包括VIRITO前端网络驱动和VIRTIO后端网络设备,所述VIRTIO后端网络设备包括时间同步模块、描述符表读取模块、已用环表更新模块、消息中断模块和以太网数据包接口模块,包括:
获取VIRITO前端网络驱动的当前系统时间,并将所述当前系统时间写入所述时间同步模块中,所述时间同步模块用于将所述当前系统时间和所述VIRTIO后端网络设备的本地时钟获取的硬件时间进行同步;
在待发送的网络数据包的头部或者尾部增加时间戳,形成更新后的网络数据包,所述更新后的网络数据包存储在所述VIRITO前端网络驱动中的;
获取所述更新后的网络数据包被发送至描述符表读取模块的第一时刻、所述已用环表更新模块的第二时刻、所述消息中断模块的第三时刻和所述以太网数据包接口模块的第四时刻;
根据所述第一时刻、所述第二时刻、所述第三时刻以及所述第四时刻分别与所述时间戳的差值,定位所述VIRTIO网络设备中发生延时的模块;
根据所述第一时刻、所述第二时刻、所述第三时刻以及所述第四时刻分别与所述时间戳的差值,定位所述VIRTIO网络设备中发生延时的模块,包括至少以下之一:
将四个所述差值中最大的所述差值对应的模块确定为所述VIRTIO网络设备发生延时的模块;
将四个所述差值中最大的所述差值对应的模块,和次大的所述差值对应的模块确定为所述VIRTIO网络设备发生延时的模块。
2.根据权利要求1所述的方法,其特征在于,在待发送的网络数据包的头部或者尾部增加时间戳,形成更新后的网络数据包之后,所述方法还包括:
采用描述符表表征所述网络数据包的缓存信息,所述缓存信息包括多个数据缓存地址、多个数据缓存长度、多个标志以及多个下一跳指针;
通过多个所述下一跳指针将所述描述符表串连成数据链。
3.根据权利要求2所述的方法,其特征在于,在通过多个所述下一跳指针将所述描述符表串连成数据链之后,所述方法还包括:
将所述数据链的首地址写入可用环表的当前索引所指向的位置;
更新所述当前索引的索引值。
4.根据权利要求3所述的方法,其特征在于,在更新所述当前索引的索引值之后,所述方法还包括:
根据所述可用环表的所述当前索引,读取所述可用环表的指针值;
根据所述指针值读取所述描述符表。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述时间戳的长度为8字节。
6.根据权利要求5所述的方法,其特征在于,所述时间戳的高32位用于表示从历史时间到所述当前系统时间的秒数,所述时间戳的低32位用于表示秒的小数部分。
7.一种VIRTIO网络设备延时定位装置,其特征在于,VIRTIO网络设备包括VIRITO前端网络驱动和VIRTIO后端网络设备,所述处理单元分别与所述VIRITO前端网络驱动和所述VIRTIO后端网络设备交互,所述VIRTIO后端网络设备包括时间同步模块、描述符表读取模块、已用环表更新模块、消息中断模块和以太网数据包接口模块,包括:
第一获取模块,用于获取VIRITO前端网络驱动的当前系统时间,并将所述当前系统时间写入所述时间同步模块中,所述时间同步模块用于将所述当前系统时间和所述VIRTIO后端网络设备的本地时钟获取的硬件时间进行同步;
新增模块,用于在待发送的网络数据包的头部或者尾部增加时间戳,形成更新后的网络数据包,所述更新后的网络数据包存储在所述VIRITO前端网络驱动中的;
第二获取模块,用于获取所述更新后的网络数据包被发送至描述符表读取模块的第一时刻、所述已用环表更新模块的第二时刻、所述消息中断模块的第三时刻和所述以太网数据包接口模块的第四时刻;
定位模块,用于根据所述第一时刻、所述第二时刻、所述第三时刻以及所述第四时刻分别与所述时间戳的差值,定位所述VIRTIO网络设备中发生延时的模块;
所述定位模块包括第一定位子模块和第二定位子模块中的至少之一:
所述第一定位子模块用于将四个所述差值中最大的所述差值对应的模块确定为所述VIRTIO网络设备发生延时的模块;
所述第二定位子模块用于将四个所述差值中最大的所述差值对应的模块,和次大的所述差值对应的模块确定为所述VIRTIO网络设备发生延时的模块。
8.一种VIRTIO网络设备,其特征在于,包括VIRITO前端网络驱动和VIRTIO后端网络设备,所述VIRTIO后端网络设备包括时间同步模块、描述符表读取模块、已用环表更新模块、消息中断模块、以太网数据包接口模块和控制器,所述VIRITO前端网络驱动包括处理模块和增加模块,
所述处理模块被配置为获取VIRITO前端网络驱动的当前系统时间,并将所述当前系统时间写入VIRTIO后端网络设备的时间同步模块中;
所述时间同步模块被配置为将所述当前系统时间和所述VIRTIO后端网络设备的本地时钟获取的硬件时间进行同步;
所述增加模块被配置为在待发送的网络数据包的头部或者尾部增加时间戳,形成更新后的网络数据包;
所述描述符表读取模块被配置为获取所述更新后的网络数据包被发送至所述描述符表读取模块的第一时刻;
所述已用环表更新模块被配置为获取所述更新后的网络数据包被发送至所述已用环表更新模块的第二时刻;
所述消息中断模块被配置为获取所述更新后的网络数据包被发送至所述消息中断模块的第三时刻;
所述以太网数据包接口模块被配置为获取所述更新后的网络数据包被发送至所述以太网数据包接口模块的第四时刻;
所述控制器被配置为根据所述第一时刻、所述第二时刻、所述第三时刻以及所述第四时刻分别与所述时间戳的差值,定位VIRTIO网络设备发生延时的模块;
所述控制器还被配置为将四个所述差值中最大的所述差值对应的模块确定为所述VIRTIO网络设备发生延时的模块;将四个所述差值中最大的所述差值对应的模块,和次大的所述差值对应的模块确定为所述VIRTIO网络设备发生延时的模块。
9.根据权利要求8所述的VIRTIO网络设备,其特征在于,所述描述符表读取模块还被配置为读取描述符表,所述描述符表用于表征所述网络数据包的缓存信息,所述缓存信息包括多个数据缓存地址、多个数据缓存长度、多个标志以及多个下一跳指针。
10.根据权利要求9所述的VIRTIO网络设备,其特征在于,所述描述符表读取模块还被配置为根据所述描述符表指向的数据缓存地址,获取所述数据缓存地址存储的网络数据包,将所述网络数据包发送至所述以太网数据包接口模块。
11.根据权利要求8所述的VIRTIO网络设备,其特征在于,所述已用环表更新模块还被配置为更新已用环表当前索引所指向地址中的信息,所述信息包括字节指针和字节长度。
12.根据权利要求8所述的VIRTIO网络设备,其特征在于,所述消息中断模块还被配置为读取可用环表中的FLAG标志,根据所述FLAG标志确认VIRITO前端网络驱动的中断抑制功能是否处于打开状态,若是,则不进行后续发MSI-X中断的步骤,若否,则进行后续发MSI-X中断的步骤。
13.根据权利要求12所述的VIRTIO网络设备,其特征在于,所述消息中断模块还被配置为在进行后续发MSI-X中断的步骤的情况下,读取MSI-X中断表,发送中断消息至所述VIRITO前端网络驱动。
14.一种VIRTIO网络设备,其特征在于,包括VIRITO前端网络驱动、VIRTIO后端网络设备和处理单元,所述处理单元分别与所述VIRITO前端网络驱动和所述VIRTIO后端网络设备进行通信,所述处理单元用于执行权利要求1至6中任一项所述的方法。
CN202210642554.6A 2022-06-08 2022-06-08 Virtio网络设备延时定位方法、处理单元及virtio网络设备 Active CN114826983B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210642554.6A CN114826983B (zh) 2022-06-08 2022-06-08 Virtio网络设备延时定位方法、处理单元及virtio网络设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210642554.6A CN114826983B (zh) 2022-06-08 2022-06-08 Virtio网络设备延时定位方法、处理单元及virtio网络设备

Publications (2)

Publication Number Publication Date
CN114826983A CN114826983A (zh) 2022-07-29
CN114826983B true CN114826983B (zh) 2023-11-17

Family

ID=82520495

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210642554.6A Active CN114826983B (zh) 2022-06-08 2022-06-08 Virtio网络设备延时定位方法、处理单元及virtio网络设备

Country Status (1)

Country Link
CN (1) CN114826983B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117992171A (zh) * 2022-10-27 2024-05-07 深圳云豹智能有限公司 一种云数据中心管理系统及电子设备
CN115629845B (zh) * 2022-12-14 2023-04-11 北京云豹创芯智能科技有限公司 Io数据的产生方法、装置、计算机设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102244925A (zh) * 2010-05-14 2011-11-16 华为技术有限公司 时钟同步方法、用户端设备和时钟同步系统
CN203117666U (zh) * 2013-02-04 2013-08-07 江汉大学 一种时间显示系统
CN103427935A (zh) * 2012-05-16 2013-12-04 中国科学院声学研究所 一种消除位置误差的网络时延测量方法及系统
CN108520238A (zh) * 2018-04-10 2018-09-11 东华大学 一种基于深度预测编码网络的夜视图像的场景预测方法
CN111953958A (zh) * 2019-05-16 2020-11-17 阿里巴巴集团控股有限公司 时延测量方法、设备、系统及存储介质
CN112311619A (zh) * 2019-08-14 2021-02-02 北京字节跳动网络技术有限公司 网络报文延迟检测方法、装置和电子设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102244925A (zh) * 2010-05-14 2011-11-16 华为技术有限公司 时钟同步方法、用户端设备和时钟同步系统
CN103427935A (zh) * 2012-05-16 2013-12-04 中国科学院声学研究所 一种消除位置误差的网络时延测量方法及系统
CN203117666U (zh) * 2013-02-04 2013-08-07 江汉大学 一种时间显示系统
CN108520238A (zh) * 2018-04-10 2018-09-11 东华大学 一种基于深度预测编码网络的夜视图像的场景预测方法
CN111953958A (zh) * 2019-05-16 2020-11-17 阿里巴巴集团控股有限公司 时延测量方法、设备、系统及存储介质
CN112311619A (zh) * 2019-08-14 2021-02-02 北京字节跳动网络技术有限公司 网络报文延迟检测方法、装置和电子设备

Also Published As

Publication number Publication date
CN114826983A (zh) 2022-07-29

Similar Documents

Publication Publication Date Title
CN114826983B (zh) Virtio网络设备延时定位方法、处理单元及virtio网络设备
US20210232528A1 (en) Configurable device interface
US11861203B2 (en) Method, apparatus and electronic device for cloud service migration
US10198377B2 (en) Virtual machine state replication using DMA write records
US9921939B2 (en) Creating a software performance testing environment on a virtual machine system
US20210165675A1 (en) Live migration for hardware accelerated para-virtualized io device
US10411953B2 (en) Virtual machine fault tolerance method, apparatus, and system
US9304804B2 (en) Replicating virtual machines across different virtualization platforms
US8832688B2 (en) Kernel bus system with a hyberbus and method therefor
CN110609730B (zh) 一种实现虚拟处理器间中断透传的方法及设备
US9058420B2 (en) Synchronous decoupled program analysis in virtual environments
US9842032B2 (en) Memory first live snapshot
CN107111498B (zh) 利用图形虚拟化从/向主机计算机进行虚拟机的实时迁移
US11809888B2 (en) Virtual machine memory migration facilitated by persistent memory devices
Xu et al. SRVM: Hypervisor support for live migration with passthrough SR-IOV network devices
CN106970821A (zh) 一种kvm虚拟化下处理i/o请求的方法和装置
KR101716715B1 (ko) 가상 머신 환경의 네트워크 입출력 장치 가상화 방법 및 장치
US9389910B2 (en) Paravirtualized migration counter for migrating a virtual CPU to a different physical CPU
CN112395152B (zh) 服务器资源获取方法及获取系统
US10754783B2 (en) Techniques to manage cache resource allocations for a processor cache
KR20220075427A (ko) 상이한 유형의 메모리들 사이의 페이지 마이그레이션 감소
WO2021086457A1 (en) Evolving hypervisor pass-through device to be consistently platform-independent by mediated-device in user space (muse)
EP3113015B1 (en) Method and apparatus for data communication in virtualized environment
Chang et al. Assessment of hypervisor and shared storage for cloud computing server
US9378057B2 (en) Paravirtualized migration counter

Legal Events

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