CN113190331A - 一种时统卡在虚拟机上的中断延时优化方法 - Google Patents
一种时统卡在虚拟机上的中断延时优化方法 Download PDFInfo
- Publication number
- CN113190331A CN113190331A CN202110740046.7A CN202110740046A CN113190331A CN 113190331 A CN113190331 A CN 113190331A CN 202110740046 A CN202110740046 A CN 202110740046A CN 113190331 A CN113190331 A CN 113190331A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- interrupt
- system card
- thread
- card
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Systems (AREA)
- Bus Control (AREA)
Abstract
本发明公开了一种时统卡在虚拟机上的中断延时优化方法,其步骤包括:步骤S1:将插入宿主机上的时统卡透传到虚拟机;步骤S2:配置虚拟机系统参数;步骤S3:时统卡根据配置文件发出不同频率中断,虚拟机应用程序对不同频率中断做相应处理。本发明具有原理简单、能够提高精确度等优点。
Description
技术领域
本发明主要涉及到虚拟化环境或云计算环境中虚拟机中使用时统卡授时技术领域,特指一种时统卡在虚拟机上的中断延时优化方法。
背景技术
时统卡是一种授时终端,可以输出准确的UTC(Coordinated UniversalTime)时间,广泛应用于通信、金融、交通、航天、航海等多个领域中。PCI-E(PCI Express)是用来代替PCI、AGP接口规范的一种新标准,由PCI或AGP的并行数据传输变为串行数据传输,并且采用了点对点技术,允许每个设计建立自己的数据通道,这样极大的加快了相关设备之间的数据传送速度,因此时统卡一般使用PCI-E接口接入计算机,称之为PCI-E时统卡。PCI-E时统卡通过接受B码终端发来的信号,经FPGA进行解码,获得时间信息,并以1pps(Pulse PerSecond)脉冲为基准产生用户所需要的20Hz、50Hz、100Hz等中断脉冲信号,最后通过PCI-E桥接芯片与计算机进行数据交互,使得时统卡中的时间信息以及中断脉冲信息能够传到计算机终端或服务器中。
目前的技术方案中,时统卡插在宿主机上,由于该时统卡设备不支持SR-IOV,只能将时统卡直接分配给虚拟机使用,在虚拟机上使用时统卡,使用传统的中断方法处理时钟会产生较大的延时。
因此,如何解决所述延时问题成为亟需解决的问题。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种原理简单、能够提高精确度的时统卡在虚拟机上的中断延时优化方法。
为解决上述技术问题,本发明采用以下技术方案:
一种时统卡在虚拟机上的中断延时优化方法,其步骤包括:
步骤S1:将插入宿主机上的时统卡透传到虚拟机;
步骤S2:配置虚拟机系统参数;
步骤S3:时统卡根据配置文件发出不同频率中断,虚拟机应用程序对不同频率中断做相应处理。
作为本发明的进一步改进:所述步骤S1中,将PCI-E接口的时统卡插入宿主机PCI-E插槽,在宿主机上创建虚拟机,将物理时统卡直接透传到虚拟机中。
作为本发明的进一步改进:所述步骤S1中,创建虚拟机具体是指:通过qemu创建虚拟机,虚拟机分配数个vcpu,并将数个vcpu分别绑定到数个物理cpu上。
作为本发明的进一步改进:所述步骤S1中,通过qemu命令将物理时统卡直接透传到虚拟机。
作为本发明的进一步改进:所述步骤S2中包括:时统卡驱动将时统卡设备的bar空间映射到用户空间。
作为本发明的进一步改进:通过所述虚拟机中时统卡驱动实现mmap接口,将时统卡设备的bar空间映射到用户空间。
作为本发明的进一步改进:所述步骤S3中,时统卡根据配置文件发出不同频率中断,应用程序通过mmap系统调用将物理时统卡的bar空间映射到虚拟地址空间,主线程轮询bar空间中断寄存器的状态,依次完成对各中断频率线程的唤醒。
作为本发明的进一步改进:所述步骤S2中,分别添加虚拟机启动参数nohlt、nosoftlockup=0、rcunocbs=0-7、rcu_nocb_poll,用以减少操作系统对所述时统卡中断的影响。
作为本发明的进一步改进:上述步骤S3中,时统卡配置文件可配置1Hz、2Hz、10Hz、20Hz、40Hz、50Hz中任意一种频率输出,时统卡驱动根据配置文件发出相应频率的中断。
作为本发明的进一步改进:所述步骤S3中,虚拟机中的应用程序主线程读取不同频率中断状态,并唤醒子线程;子线程处理时统卡不同频率的数据;在主线程中轮询所述时统卡设备bar空间中断寄存器的状态,判断是否有中断产生,若有则判断是何种频率的中断,并唤醒对应频率的处理线程,若无则继续轮询。
作为本发明的进一步改进:所述在虚拟机应用程序主线程中,当读取时统卡配置文件时,创建多个子线程;所述主线程通过mmap系统调用函数将PCI-E时统卡的bar空间映射到用户虚拟地址空间,然后主线程轮询中断寄存器的状态,根据读到的中断寄存器的状态判断是某种频率的中断,并将中断信号分发给各个子线程,唤醒子线程去做相关处理。
作为本发明的进一步改进:所述子线程完成对中断数据的处理;具体包括:设置线程属性;判断中断是否丢失;判断中断延时;所述设置线程属性包括:设置cpu亲和性;设置线程调度策略为FIFO;设置线程优先级。
作为本发明的进一步改进:所述子线程等待它所处理的频率的中断,如果有中断产生,则读取时统卡数据寄存器的时间信息,并根据对应的频率值对读到的数据做取余运算;依据取余运算判定是否有中断。
作为本发明的进一步改进:所述如果取余后的值大于1ms,则认为延迟超过延时时间预设值;如果取余后的值大于对应频率值的1.5倍,则认为中断有丢失;如果没有中断产生,则继续等待中断的到来。
与现有技术相比,本发明的优点在于:
本发明的时统卡在虚拟机上的中断延时优化方法,原理简单、能够提高精确度,通过时统卡在虚拟机上的中断延时优化方法和设置虚拟机系统参数,将时统卡在虚拟机上的中断延时精确到1ms以内。
附图说明
图1是本发明实施例方法的基本流程示意图。
图2是本发明实施例的主线程流程示意图。
图3是本发明实施例方法的子线程流程示意图。
具体实施方式
以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
如图1所示,本发明的一种时统卡在虚拟机上的中断延时优化方法,其步骤包括:
步骤S1:将插入宿主机上的时统卡透传到虚拟机;
步骤S2:配置虚拟机系统参数;
步骤S3:时统卡根据配置文件发出不同频率中断,虚拟机应用程序对不同频率中断做相应处理。在主线程中轮询所述时统卡设备bar空间中断寄存器的状态,判断是否有中断产生,若有则判断是何种频率的中断,并唤醒对应频率的处理线程,若无则继续轮询。
在具体应用实例中,本发明的上述步骤S1中,将PCI-E接口的时统卡插入宿主机PCI-E插槽,在宿主机上创建虚拟机,将物理时统卡直接透传到虚拟机中。插入宿主机的时统卡直接透传到虚拟机,那么虚拟机上看到的是实际的物理时统卡。这是由于所述时统卡不支持SR-IOV,在固件中使能SMMU,因此本发明将所述时统卡直接分配给虚拟机。
在具体应用实例中,本发明的上述步骤S1中,创建虚拟机具体是指:通过qemu创建虚拟机,虚拟机分配8个vcpu,并将8个vcpu分别绑定到8个物理cpu上。
在具体应用实例中,本发明的上述步骤S1中,进一步通过qemu命令将物理时统卡直接透传到虚拟机。
在具体应用实例中,本发明的上述步骤S2中包括:时统卡驱动将时统卡设备的bar空间映射到用户空间。具体实现时,可以根据实际需要选择通过所述虚拟机中时统卡驱动实现mmap接口,将时统卡设备的bar空间映射到用户空间。
在具体应用实例中,本发明的上述步骤S2中,分别添加虚拟机启动参数nohlt、nosoftlockup=0、rcunocbs=0-7、rcu_nocb_poll,从而可优化系统性能,减少操作系统对所述时统卡中断的影响。
在具体应用实例中,步骤S3中,时统卡根据配置文件发出不同频率中断,应用程序通过mmap系统调用将物理时统卡的bar空间映射到虚拟地址空间,主线程轮询bar空间中断寄存器的状态,依次完成对各中断频率线程的唤醒。
在具体应用实例中,本发明的上述步骤S3中,时统卡配置文件可配置1Hz、2Hz、10Hz、20Hz、40Hz、50Hz等不同频率输出,时统卡驱动根据配置文件可发出相应频率的中断。主线程通过mmap系统调用访问设备的bar空间。
在具体应用实例中,本发明的上述步骤S3中,虚拟机中的应用程序主线程读取不同频率中断状态,并唤醒子线程;子线程处理时统卡不同频率的数据。
如图2所示,在虚拟机应用程序主线程中,当读取时统卡配置文件时,创建多个子线程;所述子线程用于处理不同频率的数据;主线程则通过mmap系统调用函数将PCI-E时统卡的bar空间映射到用户虚拟地址空间,然后主线程轮询中断寄存器的状态,根据读到的中断寄存器的状态判断是某种频率的中断,并将中断信号分发给各个子线程,唤醒子线程去做相关处理。
子线程完成对中断数据的处理;具体包括:设置线程属性;判断中断是否丢失;判断中断延时。其中,所述设置线程属性包括:设置cpu亲和性;设置线程调度策略为FIFO;设置线程优先级。
如图3所示,进一步,子线程等待它所处理的频率的中断,如果有中断产生,则读取时统卡数据寄存器的时间信息,并根据对应的频率值对读到的数据做取余运算;如果取余后的值大于1ms,则认为延迟超过延时时间预设值;如果取余后的值大于对应频率值的1.5倍,则认为中断有丢失;如果没有中断产生,则继续等待中断的到来。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
Claims (14)
1.一种时统卡在虚拟机上的中断延时优化方法,其特征在于,步骤包括:
步骤S1:将插入宿主机上的时统卡透传到虚拟机;
步骤S2:配置虚拟机系统参数;
步骤S3:时统卡根据配置文件发出不同频率中断,虚拟机应用程序对不同频率中断做相应处理。
2.根据权利要求1所述的时统卡在虚拟机上的中断延时优化方法,其特征在于,所述步骤S1中,将PCI-E接口的时统卡插入宿主机PCI-E插槽,在宿主机上创建虚拟机,将物理时统卡直接透传到虚拟机中。
3.根据权利要求2所述的时统卡在虚拟机上的中断延时优化方法,其特征在于,所述步骤S1中,创建虚拟机具体是指:通过qemu创建虚拟机,虚拟机分配数个vcpu,并将数个vcpu分别绑定到数个物理cpu上。
4.根据权利要求2所述的时统卡在虚拟机上的中断延时优化方法,其特征在于,所述步骤S1中,通过qemu命令将物理时统卡直接透传到虚拟机。
5.根据权利要求1-4中任意一项所述的时统卡在虚拟机上的中断延时优化方法,其特征在于,所述步骤S2中包括:时统卡驱动将时统卡设备的bar空间映射到用户空间。
6.根据权利要求5所述的时统卡在虚拟机上的中断延时优化方法,其特征在于,通过所述虚拟机中时统卡驱动实现mmap接口,将时统卡设备的bar空间映射到用户空间。
7.根据权利要求5所述的时统卡在虚拟机上的中断延时优化方法,其特征在于,所述步骤S3中,时统卡根据配置文件发出不同频率中断,应用程序通过mmap系统调用将物理时统卡的bar空间映射到虚拟地址空间,主线程轮询bar空间中断寄存器的状态,依次完成对各中断频率线程的唤醒。
8.根据权利要求5所述的时统卡在虚拟机上的中断延时优化方法,其特征在于,所述步骤S2中,分别添加虚拟机启动参数nohlt、nosoftlockup=0、rcunocbs=0-7、rcu_nocb_poll,用以减少操作系统对所述时统卡中断的影响。
9.根据权利要求1-4中任意一项所述的时统卡在虚拟机上的中断延时优化方法,其特征在于,上述步骤S3中,时统卡配置文件可配置1Hz、2Hz、10Hz、20Hz、40Hz、50Hz中任意一种频率输出,时统卡驱动根据配置文件发出相应频率的中断。
10.根据权利要求1-4中任意一项所述的时统卡在虚拟机上的中断延时优化方法,其特征在于,所述步骤S3中,虚拟机中的应用程序主线程读取不同频率中断状态,并唤醒子线程;子线程处理时统卡不同频率的数据;在主线程中轮询所述时统卡设备bar空间中断寄存器的状态,判断是否有中断产生,若有则判断是何种频率的中断,并唤醒对应频率的处理线程,若无则继续轮询。
11.根据权利要求10所述的时统卡在虚拟机上的中断延时优化方法,其特征在于,所述在虚拟机应用程序主线程中,当读取时统卡配置文件时,创建多个子线程;所述主线程通过mmap系统调用函数将PCI-E时统卡的bar空间映射到用户虚拟地址空间,然后主线程轮询中断寄存器的状态,根据读到的中断寄存器的状态判断是何种频率的中断,并将中断信号分发给各个子线程,唤醒子线程去做相关处理。
12.根据权利要求11所述的时统卡在虚拟机上的中断延时优化方法,其特征在于,所述子线程完成对中断数据的处理;具体包括:设置线程属性;判断中断是否丢失;判断中断延时;所述设置线程属性包括:设置cpu亲和性;设置线程调度策略为FIFO;设置线程优先级。
13.根据权利要求11所述的时统卡在虚拟机上的中断延时优化方法,其特征在于,所述子线程等待它所处理的频率的中断,如果有中断产生,则读取时统卡数据寄存器的时间信息,并根据对应的频率值对读到的数据做取余运算;依据取余运算判定是否有中断。
14.根据权利要求13所述的时统卡在虚拟机上的中断延时优化方法,其特征在于,如果取余后的值大于1ms,则认为延迟超过延时时间预设值;如果取余后的值大于对应频率值的1.5倍,则认为中断有丢失;如果没有中断产生,则继续等待中断的到来。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110740046.7A CN113190331B (zh) | 2021-07-01 | 2021-07-01 | 一种时统卡在虚拟机上的中断延时优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110740046.7A CN113190331B (zh) | 2021-07-01 | 2021-07-01 | 一种时统卡在虚拟机上的中断延时优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113190331A true CN113190331A (zh) | 2021-07-30 |
CN113190331B CN113190331B (zh) | 2021-09-21 |
Family
ID=76976899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110740046.7A Active CN113190331B (zh) | 2021-07-01 | 2021-07-01 | 一种时统卡在虚拟机上的中断延时优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113190331B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN202735709U (zh) * | 2012-06-21 | 2013-02-13 | 王辉 | 无人飞行器在线仿真时间同步装置 |
CN107015843A (zh) * | 2016-01-28 | 2017-08-04 | 刘晓建 | 通用计算机实时处理外部事件的方法和一种虚拟时统设备 |
CN110377106A (zh) * | 2019-06-21 | 2019-10-25 | 湖南麒麟信安科技有限公司 | 一种时统卡虚拟化方法、系统及介质 |
CN209949115U (zh) * | 2019-07-26 | 2020-01-14 | 北京新宇航星科技有限公司 | 一种多时钟源综合网络时统卡 |
-
2021
- 2021-07-01 CN CN202110740046.7A patent/CN113190331B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN202735709U (zh) * | 2012-06-21 | 2013-02-13 | 王辉 | 无人飞行器在线仿真时间同步装置 |
CN107015843A (zh) * | 2016-01-28 | 2017-08-04 | 刘晓建 | 通用计算机实时处理外部事件的方法和一种虚拟时统设备 |
CN110377106A (zh) * | 2019-06-21 | 2019-10-25 | 湖南麒麟信安科技有限公司 | 一种时统卡虚拟化方法、系统及介质 |
CN209949115U (zh) * | 2019-07-26 | 2020-01-14 | 北京新宇航星科技有限公司 | 一种多时钟源综合网络时统卡 |
Also Published As
Publication number | Publication date |
---|---|
CN113190331B (zh) | 2021-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8266232B2 (en) | Hardware processing of commands within virtual client computing environment | |
CN108228492B (zh) | 一种多通道ddr交织控制方法及装置 | |
CN106681949B (zh) | 基于一致性加速接口的直接内存操作实现方法 | |
EP3529706A1 (en) | Gpu remote communication with triggered operations | |
CN112199173B (zh) | 双核cpu实时操作系统数据处理方法 | |
US10078879B2 (en) | Process synchronization between engines using data in a memory location | |
US20180285292A1 (en) | System and method of sending data via additional secondary data lines on a bus | |
CN112148422A (zh) | 一种io处理的方法和装置 | |
CN103559045A (zh) | 一种硬件实时操作系统 | |
CN114513545B (zh) | 请求处理方法、装置、设备及介质 | |
CN112799840B (zh) | 用于传输数据的方法、装置、设备以及存储介质 | |
CN114936173B (zh) | 一种eMMC器件的读写方法、装置、设备和存储介质 | |
CN112131176A (zh) | 一种基于pcie的fpga快速局部重构方法 | |
CN113190331B (zh) | 一种时统卡在虚拟机上的中断延时优化方法 | |
CN113849238A (zh) | 数据通信方法、装置、电子设备及可读存储介质 | |
CN111625281A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
US20230153153A1 (en) | Task processing method and apparatus | |
CN110765045A (zh) | 一种基于fpga的中断延时计数系统及方法 | |
US10713188B2 (en) | Inter-process signaling system and method | |
US11552892B2 (en) | Dynamic control of latency tolerance reporting values | |
CN110489212B (zh) | 一种通用型输入输出口虚拟化的方法、装置及车机 | |
CN116601616A (zh) | 一种数据处理装置、方法及相关设备 | |
CN114238188A (zh) | 基于dma和fifo接收串口不定长数据的方法及装置 | |
CN118467453B (zh) | 一种数据传输方法、装置、设备、介质及计算机程序产品 | |
CN109542811B (zh) | 一种数据通讯处理方法 |
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 |