CN113190331A - 一种时统卡在虚拟机上的中断延时优化方法 - Google Patents

一种时统卡在虚拟机上的中断延时优化方法 Download PDF

Info

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
Application number
CN202110740046.7A
Other languages
English (en)
Other versions
CN113190331B (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.)
Phytium Technology Co Ltd
Original Assignee
Phytium 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 Phytium Technology Co Ltd filed Critical Phytium Technology Co Ltd
Priority to CN202110740046.7A priority Critical patent/CN113190331B/zh
Publication of CN113190331A publication Critical patent/CN113190331A/zh
Application granted granted Critical
Publication of CN113190331B publication Critical patent/CN113190331B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI 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倍,则认为中断有丢失;如果没有中断产生,则继续等待中断的到来。
CN202110740046.7A 2021-07-01 2021-07-01 一种时统卡在虚拟机上的中断延时优化方法 Active CN113190331B (zh)

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)

* Cited by examiner, † Cited by third party
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 北京新宇航星科技有限公司 一种多时钟源综合网络时统卡

Patent Citations (4)

* Cited by examiner, † Cited by third party
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