CN106406974B - High-performance timer implementation method for virtual machine and virtual machine - Google Patents
High-performance timer implementation method for virtual machine and virtual machine Download PDFInfo
- Publication number
- CN106406974B CN106406974B CN201510458635.0A CN201510458635A CN106406974B CN 106406974 B CN106406974 B CN 106406974B CN 201510458635 A CN201510458635 A CN 201510458635A CN 106406974 B CN106406974 B CN 106406974B
- Authority
- CN
- China
- Prior art keywords
- timer
- virtual machine
- core
- precision
- hardware
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
技术领域technical field
本发明涉及虚拟机高性能定时领域,尤其涉及一种用于虚拟机的高性能定时器实现方法、虚拟机。The invention relates to the field of high-performance timing of virtual machines, in particular to a method for realizing high-performance timers for virtual machines and a virtual machine.
背景技术Background technique
目前在虚拟化领域的应用中,虚拟机性能是大家普遍关注的一个关键指标,一台虚拟机能否具有和物理机相同的性能是虚拟化领域长期以来比较难以解决的难题,而嵌入式虚拟化由于其承载业务具有高实时性要求的特性,因此对虚拟化后的各项性能指标要求更为苛刻,而影响虚拟机运行指标中最为关键的一个就是虚拟机定时器精度问题。At present, in the application of virtualization field, virtual machine performance is a key indicator that everyone pays attention to. Whether a virtual machine can have the same performance as a physical machine has been a difficult problem to solve in the field of virtualization for a long time. Due to the high real-time requirements of the services it carries, virtualization has more stringent requirements on various performance indicators after virtualization, and the most critical factor affecting the performance of virtual machines is the accuracy of virtual machine timers.
现有嵌入式虚拟化高精度定时器处理流程是:GuestOS配置偏移为0x380 的TimerInitial Count寄存器定时值;硬件写0x380寄存器产生VM_Exit到 Hypervisor进行指令解码后写入真实硬件寄存器;系统由Hypervisor返回到 GuestOS继续运行;高精度定时器定时到硬件产生中断发生VM_Exit到 Hypervisor处理中断后将该中断转换为虚拟中断注入GuestOS的IDT中断处理流程。The existing embedded virtualized high-precision timer processing flow is: GuestOS configures the TimerInitial Count register timing value with an offset of 0x380; the hardware writes the 0x380 register to generate VM_Exit to the Hypervisor for instruction decoding and then writes to the real hardware register; the system is returned by the Hypervisor to GuestOS continues to run; the high-precision timer is timed to the hardware generation interrupt and VM_Exit occurs to the Hypervisor to process the interrupt, and the interrupt is converted into a virtual interrupt and injected into the IDT interrupt processing flow of the GuestOS.
该方法存在影响嵌入式虚拟机高精度定时器性能的关键因素有两个方面:第一是每次向0x380寄存器写定时值会产生一次VM_Exit到Hypervisor处理产生指令解码操作形成性能瓶颈;第二是当定时到时高精度定时器会发出中断产生VM_Exit到Hypervisor处理后再注入中断到GuestOS IDT中断处理例程,这个过程增加了VM_Exit到Hypervisor切换和硬件中断处理开销,对于虚拟机定时器精度有较大的性能影响。There are two key factors affecting the performance of the embedded virtual machine's high-precision timer in this method: the first is that every time the timing value is written to the 0x380 register, a VM_Exit will be generated to the Hypervisor to process and generate an instruction decoding operation to form a performance bottleneck; the second is that When the timing is up, the high-precision timer will issue an interrupt to generate VM_Exit to be processed by the Hypervisor, and then inject the interrupt into the GuestOS IDT interrupt processing routine. This process increases the overhead of VM_Exit to Hypervisor switching and hardware interrupt processing, which is more accurate for the virtual machine timer. big performance impact.
因此,如何提供一种具备较高定时器精度的高性能定时器实现方法,是本领域技术人员亟待解决的技术问题。Therefore, how to provide a high-performance timer implementation method with higher timer precision is a technical problem to be solved urgently by those skilled in the art.
发明内容SUMMARY OF THE INVENTION
本发明提供了一种用于虚拟机的高性能定时器实现方法、虚拟机,以解决虚拟机定时器精度差的问题。The present invention provides a high-performance timer implementation method and a virtual machine for a virtual machine, so as to solve the problem of poor timer precision of the virtual machine.
本发明提供了一种用于虚拟机的高性能定时器实现方法,其包括:分区 GuestOS产生定时要求,向高精度定时器寄存器0x380写定时值;分区CPU 捕获写0x380寄存器特权指令操作,产生VM_Exit到Hypervisor处理;嵌入式Hypervisor通过CPU获取写寄存器偏移和写入值添加至定时器配置报文,发送至高速通讯队列;高精度定时器模块从高速通讯队列中获取定时器配置报文,并写入硬件core寄存器。The present invention provides a high-performance timer implementation method for a virtual machine, which includes: partitioning GuestOS to generate timing requirements, and writing the timing value to high-precision timer register 0x380; partitioning CPU capturing and writing 0x380 register privilege instruction operation to generate VM_Exit to the Hypervisor for processing; the embedded Hypervisor obtains the write register offset and the write value through the CPU, adds it to the timer configuration message, and sends it to the high-speed communication queue; the high-precision timer module obtains the timer configuration message from the high-speed communication queue, and Write to hardware core registers.
进一步的,当存在多个分区时,还包括:嵌入式Hypervisor将发起寄存器写操作的分区VCPU所在的core id、对应硬件Posted Interrupt描述符地址整合,并添加至定时器配置报文。Further, when there are multiple partitions, the method further includes: the embedded hypervisor integrates the core id where the partition VCPU that initiates the register write operation is located, and the address of the corresponding hardware Posted Interrupt descriptor, and adds it to the timer configuration message.
进一步的,在将定时器配置报文发送至高速通讯队列之后,还包括:通知高精度定时器模块写寄存器操作完成;高精度定时器模块在收到通知后,从高速通讯队列中获取定时器配置报文。Further, after sending the timer configuration message to the high-speed communication queue, it also includes: informing the high-precision timer module that the register write operation is completed; the high-precision timer module obtains the timer from the high-speed communication queue after receiving the notification. Configuration messages.
进一步的,高精度定时器模块将定时器配置报文写入硬件core寄存器包括:高精度定时器模块解析定时器配置报文,获取写寄存器偏移和写入值,确定定时器偏移及定时值,写入硬件Core定时器。Further, the high-precision timer module writes the timer configuration message into the hardware core register, including: the high-precision timer module parses the timer configuration message, obtains the write register offset and write value, and determines the timer offset and timing. Value, written to the hardware Core timer.
进一步的,当存在多个分区时,还包括:高精度定时器模块解析定时器配置报文,获取写寄存器偏移和写入值、发起寄存器写操作的分区VCPU所在的 core id、对应硬件Posted Interrupt描述符地址,以定时器偏移及定时值为VCPU 所在的core id、硬件Posted Interrupt描述符地址存储到虚拟机定时器模型;找出的最小定时值写入硬件Core定时器。Further, when there are multiple partitions, it also includes: the high-precision timer module parses the timer configuration message, obtains the write register offset and write value, the core id where the partition VCPU that initiates the register write operation is located, and the corresponding hardware Posted Interrupt descriptor address, the timer offset and timing value are the core id where the VCPU is located, and the hardware Posted Interrupt descriptor address is stored in the virtual machine timer model; the minimum timing value found is written to the hardware Core timer.
进一步的,还包括:判断硬件Core定时器是否处于非定时状态;如果硬件 Core定时器处于非定时状态,则高精度定时器模块查找虚拟机定时器数据模型,将找出的最小定时值写入硬件Core定时器;如果硬件Core定时器处于定时状态,不进行硬件Core定时器的写入操作。Further, it also includes: judging whether the hardware Core timer is in an untimed state; if the hardware Core timer is in an untimed state, the high-precision timer module searches for the virtual machine timer data model, and writes the found minimum timing value into Hardware core timer; if the hardware core timer is in the timing state, the write operation of the hardware core timer is not performed.
进一步的,还包括:部署分区虚拟机的core通过Hypervisor关闭高精度定时器。Further, it also includes: disabling the high-precision timer through the hypervisor for the core of the deployed partition virtual machine.
进一步的,还包括:选择一core,在core该运行嵌入式Hypervisor高精度定时器模块。Further, it also includes: selecting a core, and running the embedded Hypervisor high-precision timer module in the core.
进一步的,还包括:在嵌入式Hypervisor软件层构建各个分区虚拟机与高精度定时器模块之间的高速通讯通道。Further, it also includes: constructing a high-speed communication channel between each partition virtual machine and the high-precision timer module in the embedded Hypervisor software layer.
进一步的,还包括:硬件Core定时器在定时到达时,发送中断通知至高精度定时器模块,高精度定时器模块向分区PI描述符写入高精度定时器中断标志,向分区core发送PI物理中断。Further, it also includes: when the hardware core timer arrives at the timing, sending an interrupt notification to the high-precision timer module, the high-precision timer module writes the high-precision timer interrupt flag to the partition PI descriptor, and sends the PI physical interrupt to the partition core. .
进一步的,当存在多个分区时,还包括:高精度定时器模块从虚拟机定时器模型中获取定时到的虚拟机的VCPU的core id及虚拟机PI描述符地址信息,根据获取的虚拟机PI描述符地址向对应的PI描述符写入高精度定时器中断标志,根据获取的VCPU的core id向对应的core发送PI物理中断。Further, when there are multiple partitions, it also includes: the high-precision timer module obtains the core id of the VCPU of the virtual machine and the PI descriptor address information of the virtual machine that are timed from the virtual machine timer model, according to the obtained virtual machine. The PI descriptor address writes the high-precision timer interrupt flag to the corresponding PI descriptor, and sends the PI physical interrupt to the corresponding core according to the acquired core id of the VCPU.
进一步的,还包括:高精度定时器模块从虚拟机定时器模型中删除已经完成定时中断注入的分区定时器数据,并从虚拟机定时器数据模型读取下一个最小定时值,将读取的虚拟机下一个最小定时值写入硬件Core定时器。Further, it also includes: the high-precision timer module deletes the partition timer data that has completed timing interrupt injection from the virtual machine timer model, and reads the next minimum timing value from the virtual machine timer data model. The next minimum timing value of the virtual machine is written to the hardware Core timer.
本发明提供了一种虚拟机,其包括:分区GuestOS,用于产生定时要求,向高精度定时器寄存器0x380写定时值;分区CPU,用于捕获写0x380寄存器特权指令操作,产生VM_Exit到Hypervisor处理;嵌入式Hypervisor,用于通过CPU获取写寄存器偏移和写入值添加至定时器配置报文,发送至高速通讯队列;高精度定时器模块,用于从高速通讯队列中获取定时器配置报文,并写入硬件core寄存器。The present invention provides a virtual machine, which includes: a partitioned GuestOS, which is used to generate timing requirements and write timing values to a high-precision timer register 0x380; a partitioned CPU, which is used to capture and write a privileged instruction operation of the 0x380 register, and generate VM_Exit to be processed by the Hypervisor ; Embedded Hypervisor, used to obtain the write register offset and write value through the CPU, add it to the timer configuration message, and send it to the high-speed communication queue; High-precision timer module, used to obtain the timer configuration report from the high-speed communication queue. text, and write to the hardware core register.
进一步的,当存在多个分区时,嵌入式Hypervisor还用于将发起寄存器写操作的分区VCPU所在的core id、对应硬件Posted Interrupt描述符地址整合,并添加至定时器配置报文。Further, when there are multiple partitions, the embedded hypervisor is also used to integrate the core id where the partition VCPU that initiates the register write operation is located, and the corresponding hardware Posted Interrupt descriptor address, and add it to the timer configuration message.
进一步的,嵌入式Hypervisor在将定时器配置报文发送至高速通讯队列之后,还用于通知高精度定时器模块写寄存器操作完成;高精度定时器模块还用于在收到通知后,从高速通讯队列中获取定时器配置报文。Further, after the embedded hypervisor sends the timer configuration message to the high-speed communication queue, it is also used to notify the high-precision timer module that the write register operation is completed; The timer configuration message is obtained from the communication queue.
进一步的,高精度定时器模块用于解析定时器配置报文,获取写寄存器偏移和写入值,确定定时器偏移及定时值,写入硬件Core定时器。Further, the high-precision timer module is used to parse the timer configuration message, obtain the write register offset and write value, determine the timer offset and timing value, and write the hardware Core timer.
进一步的,当存在多个分区时,高精度定时器模块还用于解析定时器配置报文,获取写寄存器偏移和写入值、发起寄存器写操作的分区VCPU所在的core id、对应硬件PostedInterrupt描述符地址,以定时器偏移及定时值为VCPU所在的core id、硬件PostedInterrupt描述符地址存储到虚拟机定时器模型;找出的最小定时值写入硬件Core定时器。Further, when there are multiple partitions, the high-precision timer module is also used to parse the timer configuration message, obtain the write register offset and write value, the core id of the partition VCPU that initiates the register write operation, and the corresponding hardware PostedInterrupt The descriptor address is stored in the virtual machine timer model with the timer offset and timing value as the core id where the VCPU is located, and the hardware PostedInterrupt descriptor address; the minimum timing value found is written into the hardware Core timer.
进一步的,高精度定时器模块还用于判断硬件Core定时器是否处于非定时状态;如果硬件Core定时器处于非定时状态,则查找虚拟机定时器数据模型,将找出的最小定时值写入硬件Core定时器;如果硬件Core定时器处于定时状态,不进行硬件Core定时器的写入操作。Further, the high-precision timer module is also used to determine whether the hardware core timer is in an untimed state; if the hardware core timer is in an untimed state, look up the virtual machine timer data model, and write the found minimum timing value into Hardware core timer; if the hardware core timer is in the timing state, the write operation of the hardware core timer is not performed.
进一步的,部署分区虚拟机的core还用于通过Hypervisor关闭高精度定时器。Further, the core of the deployed partition virtual machine is also used to turn off the high-precision timer through the hypervisor.
进一步的,嵌入式Hypervisor还用于选择一core,在core该运行嵌入式Hypervisor高精度定时器模块。Further, the embedded hypervisor is also used to select a core, and the embedded hypervisor high-precision timer module should be run in the core.
进一步的,嵌入式Hypervisor还用于在软件层构建各个分区虚拟机与高精度定时器模块之间的高速通讯通道。Further, the embedded Hypervisor is also used to construct a high-speed communication channel between each partition virtual machine and the high-precision timer module at the software layer.
进一步的,硬件Core定时器还用于硬件Core定时器在定时到达时,发送中断通知至高精度定时器模块;高精度定时器模块还用于向分区PI描述符写入高精度定时器中断标志,向分区core发送PI物理中断。Further, the hardware core timer is also used to send an interrupt notification to the high-precision timer module when the hardware core timer arrives at the timing; the high-precision timer module is also used to write the high-precision timer interrupt flag to the partition PI descriptor, Send a PI physical interrupt to the partition core.
进一步的,当存在多个分区时,高精度定时器模块还用于从虚拟机定时器模型中获取定时到的虚拟机的VCPU的core id及虚拟机PI描述符地址信息,根据获取的虚拟机PI描述符地址向对应的PI描述符写入高精度定时器中断标志,根据获取的VCPU的core id向对应的core发送PI物理中断。Further, when there are multiple partitions, the high-precision timer module is also used to obtain the core id of the VCPU of the virtual machine and the PI descriptor address information of the virtual machine from the virtual machine timer model. The PI descriptor address writes the high-precision timer interrupt flag to the corresponding PI descriptor, and sends the PI physical interrupt to the corresponding core according to the acquired core id of the VCPU.
进一步的,高精度定时器模块还用于从虚拟机定时器模型中删除已经完成定时中断注入的分区定时器数据,并从虚拟机定时器数据模型读取下一个最小定时值,将读取的虚拟机下一个最小定时值写入硬件Core定时器。Further, the high-precision timer module is also used to delete the partition timer data that has completed timing interrupt injection from the virtual machine timer model, and read the next minimum timing value from the virtual machine timer data model. The next minimum timing value of the virtual machine is written to the hardware Core timer.
本发明的有益效果:Beneficial effects of the present invention:
本发明提供了一种新的高性能定时器实现方法,在生成定时器配置报文并写入定时器的过程中,不需要像现有技术那样硬件写0x380寄存器产生VM_Exit 到Hypervisor进行指令解码后写入真实硬件寄存器,这样,GuestOS写0x380 寄存器不需要软件进行指令解码,硬件会进行指令解码并直接在VM_Exit事件中将寄存器偏移地址和写入值传递给Hypervisor处理,从本质上消除了软件指令解码产生的时间瓶颈;进一步的,在定时器到达后,高精度定时器模块先向 Posted Interrupt descriptor写入高精度定时器中断标志,然后向对应的core id 发送Posted Interrupt核间中断,Intel Posted Interrupt硬件虚拟化机制会自动根据上述配置完成对不同分区虚拟机高精度定时器的中断注入,此过程中不会产生任何VM_Exit也不需要Hypervisor介入中断处理,因此性能可以达到与物理机一致的水平。The present invention provides a new high-performance timer implementation method. In the process of generating a timer configuration message and writing it to the timer, it is not necessary to write the 0x380 register in hardware as in the prior art to generate VM_Exit to the Hypervisor for instruction decoding. Write the real hardware register, so that GuestOS does not need software to decode the instruction when writing the 0x380 register. The hardware will decode the instruction and directly pass the register offset address and write value to the Hypervisor in the VM_Exit event, which essentially eliminates the need for software. The time bottleneck caused by instruction decoding; further, after the timer arrives, the high-precision timer module first writes the high-precision timer interrupt flag to the Posted Interrupt descriptor, and then sends the Posted Interrupt inter-core interrupt to the corresponding core id, Intel Posted The Interrupt hardware virtualization mechanism will automatically complete the interrupt injection into the high-precision timers of different partitioned virtual machines according to the above configuration. No VM_Exit will be generated during this process, nor will the Hypervisor intervene in interrupt processing, so the performance can reach the same level as the physical machine. .
附图说明Description of drawings
图1为本发明第一实施例提供的虚拟机的结构示意图;FIG. 1 is a schematic structural diagram of a virtual machine provided by a first embodiment of the present invention;
图2为本发明第二实施例提供的高性能定时器实现方法的流程图;2 is a flowchart of a method for implementing a high-performance timer provided by a second embodiment of the present invention;
图3为本发明第三实施例提供的高性能定时器实现方法的流程图。FIG. 3 is a flowchart of a method for implementing a high-performance timer provided by a third embodiment of the present invention.
具体实施方式Detailed ways
现通过具体实施方式结合附图的方式对本发明做出进一步的诠释说明。The present invention will now be further explained by means of specific embodiments in conjunction with the accompanying drawings.
第一实施例:First embodiment:
图1为本发明第一实施例提供的虚拟机的结构示意图,由图1可知,在本实施例中,本发明提供的虚拟机1包括:FIG. 1 is a schematic structural diagram of a virtual machine provided by the first embodiment of the present invention. It can be seen from FIG. 1 that, in this embodiment, the virtual machine 1 provided by the present invention includes:
分区GuestOS11,用于产生定时要求,向高精度定时器寄存器0x380写定时值;Partition GuestOS11, which is used to generate timing requirements and write timing values to high-precision timer register 0x380;
分区CPU12,用于捕获写0x380寄存器特权指令操作,产生VM_Exit到 Hypervisor处理;Partition CPU12, used to capture the write 0x380 register privileged instruction operation, and generate VM_Exit to the Hypervisor for processing;
嵌入式Hypervisor13,用于通过CPU获取写寄存器偏移和写入值添加至定时器配置报文,发送至高速通讯队列;Embedded Hypervisor13, used to obtain the write register offset and write value through the CPU, add it to the timer configuration message, and send it to the high-speed communication queue;
高精度定时器模块14,用于从高速通讯队列中获取定时器配置报文,并写入硬件core定时器 15;The high-precision timer module 14 is used to obtain the timer configuration message from the high-speed communication queue and write it into the hardware core timer 15;
硬件core定时器 15用于执行定时器。The hardware core timer 15 is used to execute the timer.
在一些实施例中,当存在多个分区时,上述实施例中的嵌入式Hypervisor13 还用于将发起寄存器写操作的分区VCPU所在的core id、对应硬件Posted Interrupt描述符地址整合,并添加至定时器配置报文。In some embodiments, when there are multiple partitions, the embedded Hypervisor 13 in the above embodiment is also used to integrate the core id where the partition VCPU that initiates the register write operation is located, and the corresponding hardware Posted Interrupt descriptor address, and add it to the timing server configuration message.
在一些实施例中,上述实施例中的嵌入式Hypervisor13在将定时器配置报文发送至高速通讯队列之后,还用于通知高精度定时器模块写寄存器操作完成;高精度定时器模块还用于在收到通知后,从高速通讯队列中获取定时器配置报文。In some embodiments, after the embedded Hypervisor 13 in the above-mentioned embodiment sends the timer configuration message to the high-speed communication queue, it is further used to notify the high-precision timer module that the register write operation is completed; the high-precision timer module is also used to After receiving the notification, obtain the timer configuration message from the high-speed communication queue.
在一些实施例中,上述实施例中的高精度定时器模块14用于解析定时器配置报文,获取写寄存器偏移和写入值,确定定时器偏移及定时值,写入硬件Core 定时器。In some embodiments, the high-precision timer module 14 in the above embodiment is used to parse the timer configuration message, obtain the write register offset and write value, determine the timer offset and timing value, and write the hardware Core timing. device.
在一些实施例中,当存在多个分区时,上述实施例中的高精度定时器模块 14还用于解析定时器配置报文,获取写寄存器偏移和写入值、发起寄存器写操作的分区VCPU所在的core id、对应硬件Posted Interrupt描述符地址,以定时器偏移及定时值为VCPU所在的core id、硬件Posted Interrupt描述符地址存储到虚拟机定时器模型;找出的最小定时值写入硬件Core定时器15。In some embodiments, when there are multiple partitions, the high-precision timer module 14 in the above embodiment is also used to parse the timer configuration message, obtain the offset and write value of the write register, and initiate the partition of the register write operation. The core id where the VCPU is located and the address of the corresponding hardware Posted Interrupt descriptor are stored in the virtual machine timer model with the timer offset and timing value as the core id where the VCPU is located and the hardware Posted Interrupt descriptor address; the minimum timing value found is written Enter hardware Core timer 15.
在一些实施例中,上述实施例中的高精度定时器模块14还用于判断硬件 Core定时器15是否处于非定时状态;如果硬件Core定时器处于非定时状态,则查找虚拟机定时器数据模型,将找出的最小定时值写入硬件Core定时器;如果硬件Core定时器处于定时状态,不进行硬件Core定时器的写入操作。In some embodiments, the high-precision timer module 14 in the above embodiment is also used to determine whether the hardware core timer 15 is in an untimed state; if the hardware core timer is in an untimed state, look up the virtual machine timer data model , and write the found minimum timing value into the hardware Core timer; if the hardware Core timer is in the timing state, the writing operation of the hardware Core timer is not performed.
在一些实施例中,上述实施例中的部署分区虚拟机的core还用于通过Hypervisor13关闭高精度定时器。In some embodiments, the core of the deployment partition virtual machine in the above embodiment is also used to disable the high-precision timer through the Hypervisor 13 .
在一些实施例中,上述实施例中的嵌入式Hypervisor13还用于选择一core,在core该运行嵌入式Hypervisor高精度定时器模块14。In some embodiments, the embedded hypervisor 13 in the above-mentioned embodiment is further used to select a core, and the embedded hypervisor high-precision timer module 14 is run on the core.
在一些实施例中,上述实施例中的嵌入式Hypervisor13还用于在软件层构建各个分区虚拟机与高精度定时器模块14之间的高速通讯通道。In some embodiments, the embedded Hypervisor 13 in the above-mentioned embodiment is also used to construct a high-speed communication channel between each partition virtual machine and the high-precision timer module 14 at the software layer.
在一些实施例中,上述实施例中的硬件Core定时器15还用于硬件Core 定时器在定时到达时,发送中断通知至高精度定时器模块14;高精度定时器模块14还用于向分区PI描述符写入高精度定时器中断标志,向分区core发送 PI物理中断。In some embodiments, the hardware core timer 15 in the above-mentioned embodiment is also used to send an interrupt notification to the high-precision timer module 14 when the hardware core timer arrives at the timing; the high-precision timer module 14 is also used to send an interrupt notification to the partition PI The descriptor writes the high-precision timer interrupt flag and sends a PI physical interrupt to the partition core.
在一些实施例中,当存在多个分区时,上述实施例中的高精度定时器模块 14还用于从虚拟机定时器模型中获取定时到的虚拟机的VCPU的core id及虚拟机PI描述符地址信息,根据获取的虚拟机PI描述符地址向对应的PI描述符写入高精度定时器中断标志,根据获取的VCPU的core id向对应的core发送 PI物理中断。In some embodiments, when there are multiple partitions, the high-precision timer module 14 in the above embodiment is further configured to obtain the core id of the VCPU of the virtual machine and the description of the virtual machine PI from the virtual machine timer model. address information, write the high-precision timer interrupt flag to the corresponding PI descriptor according to the obtained virtual machine PI descriptor address, and send the PI physical interrupt to the corresponding core according to the obtained core id of the VCPU.
在一些实施例中,上述实施例中的高精度定时器模块14还用于从虚拟机定时器模型中删除已经完成定时中断注入的分区定时器数据,并从虚拟机定时器数据模型读取下一个最小定时值,将读取的虚拟机下一个最小定时值写入硬件 Core定时器。In some embodiments, the high-precision timer module 14 in the above-mentioned embodiment is further configured to delete the partition timer data that has completed the timing interrupt injection from the virtual machine timer model, and read the following data from the virtual machine timer data model. A minimum timing value, write the next minimum timing value of the virtual machine read to the hardware Core timer.
第二实施例:Second embodiment:
图2为本发明第二实施例提供的高性能定时器实现方法的流程图,由图2 可知,在本实施例中,本发明提供的高性能定时器实现方法包括以下步骤:FIG. 2 is a flowchart of a method for implementing a high-performance timer provided by a second embodiment of the present invention. As can be seen from FIG. 2, in this embodiment, the method for implementing a high-performance timer provided by the present invention includes the following steps:
S201:分区GuestOS产生定时要求,向高精度定时器寄存器0x380写定时值;S201: The partitioned GuestOS generates a timing request, and writes the timing value to the high-precision timer register 0x380;
S202:分区CPU捕获写0x380寄存器特权指令操作,产生VM_Exit到 Hypervisor处理;S202: The partition CPU captures the write 0x380 register privileged instruction operation, and generates VM_Exit to the Hypervisor for processing;
S203:嵌入式Hypervisor通过CPU获取写寄存器偏移和写入值添加至定时器配置报文,发送至高速通讯队列;S203: The embedded hypervisor obtains the write register offset and write value through the CPU, adds it to the timer configuration message, and sends it to the high-speed communication queue;
S204:高精度定时器模块从高速通讯队列中获取定时器配置报文,并写入硬件core寄存器。S204: The high-precision timer module obtains the timer configuration message from the high-speed communication queue, and writes it into the hardware core register.
在一些实施例中,当存在多个分区时,上述实施例中的方法还包括:嵌入式Hypervisor将发起寄存器写操作的分区VCPU所在的core id、对应硬件 Posted Interrupt描述符地址整合,并添加至定时器配置报文。In some embodiments, when there are multiple partitions, the method in the above embodiment further includes: the embedded hypervisor integrates the core id where the partition VCPU that initiates the register write operation is located, and the address of the corresponding hardware Posted Interrupt descriptor, and adds it to Timer configuration message.
在一些实施例中,上述实施例中的方法在将定时器配置报文发送至高速通讯队列之后,还包括:通知高精度定时器模块写寄存器操作完成;高精度定时器模块在收到通知后,从高速通讯队列中获取定时器配置报文。In some embodiments, after the method in the above-mentioned embodiment sends the timer configuration message to the high-speed communication queue, the method further includes: notifying the high-precision timer module that the register write operation is completed; after the high-precision timer module receives the notification , and obtain the timer configuration message from the high-speed communication queue.
在一些实施例中,上述实施例中的高精度定时器模块将定时器配置报文写入硬件core寄存器包括:高精度定时器模块解析定时器配置报文,获取写寄存器偏移和写入值,确定定时器偏移及定时值,写入硬件Core定时器。In some embodiments, the high-precision timer module in the above embodiment writes the timer configuration message into the hardware core register, including: the high-precision timer module parses the timer configuration message, and obtains the write register offset and write value. , determine the timer offset and timing value, and write to the hardware Core timer.
在一些实施例中,当存在多个分区时,上述实施例中的方法还包括:高精度定时器模块解析定时器配置报文,获取写寄存器偏移和写入值、发起寄存器写操作的分区VCPU所在的core id、对应硬件Posted Interrupt描述符地址,以定时器偏移及定时值为VCPU所在的core id、硬件Posted Interrupt描述符地址存储到虚拟机定时器模型;找出的最小定时值写入硬件Core定时器。In some embodiments, when there are multiple partitions, the method in the above embodiment further includes: the high-precision timer module parses the timer configuration message, obtains the write register offset and write value, and initiates the partition of the register write operation. The core id where the VCPU is located and the address of the corresponding hardware Posted Interrupt descriptor are stored in the virtual machine timer model with the timer offset and timing value as the core id where the VCPU is located and the hardware Posted Interrupt descriptor address; the minimum timing value found is written Enter the hardware Core timer.
在一些实施例中,上述实施例中的方法还包括:判断硬件Core定时器是否处于非定时状态;如果硬件Core定时器处于非定时状态,则高精度定时器模块查找虚拟机定时器数据模型,将找出的最小定时值写入硬件Core定时器;如果硬件Core定时器处于定时状态,不进行硬件Core定时器的写入操作。In some embodiments, the method in the above embodiment further includes: judging whether the hardware core timer is in an untimed state; if the hardware core timer is in an untimed state, the high-precision timer module searches for the virtual machine timer data model, Write the found minimum timing value to the hardware core timer; if the hardware core timer is in the timing state, the writing operation of the hardware core timer is not performed.
在一些实施例中,上述实施例中的方法还包括:部署分区虚拟机的core通过Hypervisor关闭高精度定时器。In some embodiments, the method in the above embodiment further includes: disabling the high-precision timer through the hypervisor for the core of the deployed partition virtual machine.
在一些实施例中,上述实施例中的方法还包括:选择一core,在core该运行嵌入式Hypervisor高精度定时器模块。In some embodiments, the method in the above embodiment further includes: selecting a core, and running the embedded hypervisor high-precision timer module on the core.
在一些实施例中,上述实施例中的方法还包括:在嵌入式Hypervisor软件层构建各个分区虚拟机与高精度定时器模块之间的高速通讯通道。In some embodiments, the method in the above embodiment further includes: constructing a high-speed communication channel between each partition virtual machine and the high-precision timer module in the embedded hypervisor software layer.
在一些实施例中,上述实施例中的方法还包括:硬件Core定时器在定时到达时,发送中断通知至高精度定时器模块,高精度定时器模块向分区PI描述符写入高精度定时器中断标志,向分区core发送PI物理中断。In some embodiments, the method in the above embodiment further includes: when the hardware core timer arrives at the timing, sending an interrupt notification to the high-precision timer module, and the high-precision timer module writes the high-precision timer interrupt to the partition PI descriptor Flag to send PI physical interrupt to partition core.
在一些实施例中,当存在多个分区时,上述实施例中的方法还包括:高精度定时器模块从虚拟机定时器模型中获取定时到的虚拟机的VCPU的core id及虚拟机PI描述符地址信息,根据获取的虚拟机PI描述符地址向对应的PI描述符写入高精度定时器中断标志,根据获取的VCPU的core id向对应的core发送PI物理中断。In some embodiments, when there are multiple partitions, the method in the above embodiment further includes: the high-precision timer module obtains the core id of the VCPU of the virtual machine and the PI description of the virtual machine to be timed from the virtual machine timer model. address information, write the high-precision timer interrupt flag to the corresponding PI descriptor according to the obtained virtual machine PI descriptor address, and send the PI physical interrupt to the corresponding core according to the obtained core id of the VCPU.
在一些实施例中,上述实施例中的方法还包括:高精度定时器模块从虚拟机定时器模型中删除已经完成定时中断注入的分区定时器数据,并从虚拟机定时器数据模型读取下一个最小定时值,将读取的虚拟机下一个最小定时值写入硬件Core定时器。In some embodiments, the method in the above-mentioned embodiment further includes: the high-precision timer module deletes the partition timer data that has completed the timing interrupt injection from the virtual machine timer model, and reads the following data from the virtual machine timer data model. A minimum timing value, write the next minimum timing value of the virtual machine read to the hardware Core timer.
现结合具体应用场景对本发明做进一步的诠释说明。The present invention will now be further explained in conjunction with specific application scenarios.
第三实施例:Third embodiment:
图3为本发明第三实施例提供的高性能定时器实现方法的流程图,由图3 可知,在本实施例中,本发明提供的高性能定时器实现方法包括以下步骤:FIG. 3 is a flowchart of a method for implementing a high-performance timer provided by a third embodiment of the present invention. As can be seen from FIG. 3, in this embodiment, the method for implementing a high-performance timer provided by the present invention includes the following steps:
S301:虚拟机初始化。S301: The virtual machine is initialized.
初始化包括以下步骤:Initialization includes the following steps:
部署分区虚拟机的core通过Hypervisor关闭高精度定时器,防止产生不必要的外部中断影响;The core of the deployed partition virtual machine closes the high-precision timer through the hypervisor to prevent unnecessary external interruptions;
单独分离出一个core运行嵌入式Hypervisor高精度定时器模块,启动该 core高精度定时器硬件功能,该模块为不同分区高精度定时器提供时钟源;Separate a core to run the embedded Hypervisor high-precision timer module, start the core high-precision timer hardware function, and this module provides clock sources for different partition high-precision timers;
在嵌入式Hypervisor软件层构建各个分区虚拟机与高精度定时器模块之间的高速通讯通道,提供不同分区0x380寄存器定时值向高精度定时器模块的写入机制;Build a high-speed communication channel between each partition virtual machine and the high-precision timer module in the embedded Hypervisor software layer, and provide a mechanism for writing the timing values of the 0x380 registers of different partitions to the high-precision timer module;
嵌入式Hypervisor配置分区虚拟机硬件APIC Register Virtualization功能,目的是让GuestOS写0x380寄存器不需要软件进行指令解码,硬件会进行指令解码并直接在VM_Exit事件中将寄存器偏移地址和写入值传递给Hypervisor处理,从本质上消除了软件指令解码产生的时间瓶颈;The embedded Hypervisor configures the partition virtual machine hardware APIC Register Virtualization function. The purpose is to allow the GuestOS to write the 0x380 register without software decoding the instruction. The hardware will perform the instruction decoding and directly pass the register offset address and write value to the Hypervisor in the VM_Exit event. processing, which essentially eliminates the time bottleneck caused by software instruction decoding;
S302:分区生成定时器配置报文。S302: The partition generates a timer configuration message.
嵌入式Hypervisor捕获GuestOS对0x380寄存器写处理操作并不直接写入当前core的硬件寄存器,而是通过高速通讯通道将定时值、当前core id及对应的PostedInterrupt descriptor地址写入高精度定时器模块。The embedded Hypervisor captures the write processing operation of the 0x380 register by the GuestOS and does not directly write the hardware register of the current core, but writes the timing value, the current core id and the corresponding PostedInterrupt descriptor address into the high-precision timer module through the high-speed communication channel.
具体的,本步骤包括:Specifically, this step includes:
高精GuestOS产生定时要求向高精度定时器寄存器0x380写定时值;The high-precision GuestOS generates timing requirements to write the timing value to the high-precision timer register 0x380;
CPU硬件捕获写0x380寄存器特权指令操作产生VM_Exit到Hypervisor 处理;The CPU hardware captures the write 0x380 register privileged instruction operation to generate VM_Exit to the Hypervisor for processing;
嵌入式Hypervisor通过CPU硬件获取写寄存器偏移和写入值并将发起寄存器写操作的分区VCPU所在的core id和对应的硬件Posted Interrupt描述符地址整合后,通过定时器配置报文打包发送到高速通讯队列;The embedded hypervisor obtains the write register offset and write value through the CPU hardware, and integrates the core id of the partition VCPU that initiates the register write operation with the corresponding hardware Posted Interrupt descriptor address, and then packages the timer configuration message and sends it to the high-speed communication queue;
嵌入式Hypervisor发送事件通知高精度定时器模块写寄存器操作完成;The embedded Hypervisor sends an event to notify the high-precision timer module that the register write operation is completed;
高精度定时器模块从高速通讯队列中获取定时器配置报文。The high-precision timer module obtains the timer configuration message from the high-speed communication queue.
S303:将定时值写入硬件core定时器。S303: Write the timing value into the hardware core timer.
高精度定时器模块从高速通讯通道接收来自各个分区虚拟机配置的高精度定时器报文,更新内部数据模型,并进行计算与分析最后完成高精度定时器模块所在core硬件高精度定时器的配置。The high-precision timer module receives high-precision timer messages from the high-speed communication channel from the virtual machine configuration of each partition, updates the internal data model, and performs calculation and analysis. Finally, the configuration of the high-precision timer of the core hardware where the high-precision timer module is located is completed. .
具体的,本步骤包括:Specifically, this step includes:
高精度定时器模块收到Hypervisor消息事件通道通知,证明此时已经有虚拟机分区写入高精度定时器定时报文,准备从通讯队列读取定时报文内容;The high-precision timer module receives the Hypervisor message event channel notification, which proves that a virtual machine partition has written the high-precision timer regular message at this time, and is ready to read the content of the regular message from the communication queue;
高精度定时器模块解析消息事件信息获取高速通讯队列号,并从队列中读取虚拟机分区写入的高精度定时器定时报文;The high-precision timer module parses the message event information to obtain the high-speed communication queue number, and reads the high-precision timer regular message written by the virtual machine partition from the queue;
高精度定时器模块分析读取的虚拟机配置定时器报文,以定时器偏移及定时值为索引将报文中的VCPU运行的coreid、硬件Posted Interrupt描述符地址存储到虚拟机定时器数据模型;The high-precision timer module analyzes the read virtual machine configuration timer message, and stores the VCPU running coreid and hardware Posted Interrupt descriptor address in the message to the virtual machine timer data with the timer offset and timing as the index. Model;
如果当前硬件Core定时器处于非定时状态则高精度定时器模块查找虚拟机定时器数据模型,将找出的最小定时值写入硬件Core定时器;如果当前硬件 Core定时器处于定时状态,不进行硬件Core定时器的写入操作。If the current hardware Core timer is in an untimed state, the high-precision timer module searches the virtual machine timer data model, and writes the found minimum timing value into the hardware Core timer; if the current hardware Core timer is in a timed state, no Write operation of the hardware core timer.
S304:硬件core定时器定时到达,产生中断。S304: The hardware core timer arrives regularly, and an interrupt is generated.
高精度定时器模块所在的core硬件高精度定时器定时到后触发高精度定时器模块运行,通过内部数据模型查找需要定时处理的分区虚拟机Posted Interruptdescriptor地址和core id,找到数据后先向Posted Interrupt descriptor 写入高精度定时器中断标志,然后向对应的core id发送Posted Interrupt核间中断,Intel PostedInterrupt硬件虚拟化机制会自动根据上述配置完成对不同分区虚拟机高精度定时器的中断注入,此过程中不会产生任何VM_Exit也不需要 Hypervisor介入中断处理,因此性能可以达到与物理机一致的水平After the high-precision timer of the core hardware where the high-precision timer module is located, trigger the high-precision timer module to run, and find the Posted Interruptdescriptor address and core id of the partition virtual machine that needs to be processed regularly through the internal data model. After finding the data, send the Posted Interrupt first. The descriptor writes the high-precision timer interrupt flag, and then sends the Posted Interrupt inter-core interrupt to the corresponding core id. The Intel PostedInterrupt hardware virtualization mechanism will automatically complete the interrupt injection to the high-precision timers of different partition virtual machines according to the above configuration. This process There will be no VM_Exit and no Hypervisor intervention in interrupt processing, so the performance can reach the same level as the physical machine.
具体的,本步骤包括:Specifically, this step includes:
硬件Core定时器定时到发中断通知高精度定时器模块;The hardware Core timer is scheduled to send an interrupt to notify the high-precision timer module;
高精度定时器模块从虚拟机定时器数据模型中获取定时到的相关虚拟机 coreid及PI描述符地址信息;The high-precision timer module obtains the timed related virtual machine coreid and PI descriptor address information from the virtual machine timer data model;
根据从数据模型中获取的虚拟机PI描述符地址向对应的PI描述符写入高精度定时器中断标志;Write the high-precision timer interrupt flag to the corresponding PI descriptor according to the virtual machine PI descriptor address obtained from the data model;
根据从数据模型中获取的VCPU的coreid向该core发送PI物理中断;Send a PI physical interrupt to the core according to the coreid of the VCPU obtained from the data model;
当软件Hypervisor完成本步骤后,硬件会自动从PI描述符中读取高精度定时器中断标志并自动产生高精度定时器中断并跳转到GuestOS中断处理例程执行,整个过程不会产生VM_Exit,因此性能与物理机完全一致。When the software hypervisor completes this step, the hardware will automatically read the high-precision timer interrupt flag from the PI descriptor and automatically generate a high-precision timer interrupt and jump to the GuestOS interrupt processing routine for execution. VM_Exit will not be generated in the whole process. So the performance is exactly the same as the physical machine.
S305:在硬件core定时器写入下一定时信息。S305: Write the next timing information in the hardware core timer.
高精度定时器模块从虚拟机定时器模型中删除已经完成定时中断注入的分区定时器数据,并从虚拟机定时器数据模型读取下一个最小定时值;高精度定时器模块将读取的虚拟机下一个最小定时值写入硬件Core高精度定时器。The high-precision timer module deletes the partition timer data that has completed timing interrupt injection from the virtual machine timer model, and reads the next minimum timing value from the virtual machine timer data model; the high-precision timer module will read the virtual The next minimum timing value of the machine is written into the hardware Core high-precision timer.
综上可知,通过本发明的实施,至少存在以下有益效果:To sum up, through the implementation of the present invention, there are at least the following beneficial effects:
在生成定时器配置报文并写入定时器的过程中,不需要像现有技术那样硬件写0x380寄存器产生VM_Exit到Hypervisor进行指令解码后写入真实硬件寄存器,这样,GuestOS写0x380寄存器不需要软件进行指令解码,硬件会进行指令解码并直接在VM_Exit事件中将寄存器偏移地址和写入值传递给 Hypervisor处理,从本质上消除了软件指令解码产生的时间瓶颈;In the process of generating the timer configuration message and writing it to the timer, it is not necessary to write the 0x380 register by hardware as in the prior art to generate VM_Exit to the hypervisor for instruction decoding and then write to the real hardware register. In this way, the GuestOS does not require software to write the 0x380 register. For instruction decoding, the hardware will perform instruction decoding and directly pass the register offset address and write value to the Hypervisor for processing in the VM_Exit event, which essentially eliminates the time bottleneck caused by software instruction decoding;
进一步的,在定时器到达后,高精度定时器模块先向Posted Interruptdescriptor写入高精度定时器中断标志,然后向对应的core id发送Posted Interrupt核间中断,Intel Posted Interrupt硬件虚拟化机制会自动根据上述配置完成对不同分区虚拟机高精度定时器的中断注入,此过程中不会产生任何 VM_Exit也不需要Hypervisor介入中断处理,因此性能可以达到与物理机一致的水平;Further, after the timer arrives, the high-precision timer module first writes the high-precision timer interrupt flag to the Posted Interruptdescriptor, and then sends the Posted Interrupt inter-core interrupt to the corresponding core id. The Intel Posted Interrupt hardware virtualization mechanism will automatically The above configuration completes the interrupt injection to the high-precision timers of different partition virtual machines. In this process, no VM_Exit is generated and no Hypervisor is required to intervene in interrupt processing, so the performance can reach the same level as the physical machine;
进一步的,部署分区虚拟机的core通过Hypervisor关闭高精度定时器,防止产生不必要的外部中断影响;Further, the core of the deployed partition virtual machine closes the high-precision timer through the hypervisor to prevent unnecessary external interruptions;
进一步的,单独分离出一个core运行嵌入式Hypervisor高精度定时器模块,启动该core高精度定时器硬件功能,该模块为不同分区高精度定时器提供时钟源;Further, separate a core to run the embedded Hypervisor high-precision timer module, start the core high-precision timer hardware function, and this module provides clock sources for different partition high-precision timers;
进一步的,在嵌入式Hypervisor软件层构建各个分区虚拟机与高精度定时器模块之间的高速通讯通道,提供不同分区0x380寄存器定时值向高精度定时器模块的写入机制。Further, a high-speed communication channel between each partition virtual machine and the high-precision timer module is constructed in the embedded hypervisor software layer, and a mechanism for writing the timing values of the 0x380 registers of different partitions to the high-precision timer module is provided.
以上仅是本发明的具体实施方式而已,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施方式所做的任意简单修改、等同变化、结合或修饰,均仍属于本发明技术方案的保护范围。The above are only specific embodiments of the present invention, and do not limit the present invention in any form. Any simple modifications, equivalent changes, combinations or modifications made to the above embodiments according to the technical essence of the present invention still belong to the present invention. The protection scope of the technical solution of the invention.
Claims (24)
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201510458635.0A CN106406974B (en) | 2015-07-30 | 2015-07-30 | High-performance timer implementation method for virtual machine and virtual machine |
| PCT/CN2015/089282 WO2016131247A1 (en) | 2015-07-30 | 2015-09-09 | Method for realizing high-performance timer using virtual machine and virtual machine |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201510458635.0A CN106406974B (en) | 2015-07-30 | 2015-07-30 | High-performance timer implementation method for virtual machine and virtual machine |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN106406974A CN106406974A (en) | 2017-02-15 |
| CN106406974B true CN106406974B (en) | 2020-07-17 |
Family
ID=56689235
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201510458635.0A Active CN106406974B (en) | 2015-07-30 | 2015-07-30 | High-performance timer implementation method for virtual machine and virtual machine |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN106406974B (en) |
| WO (1) | WO2016131247A1 (en) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108196934B (en) * | 2016-12-08 | 2022-04-26 | 阿里巴巴集团控股有限公司 | Timing setting method and device of timer and virtualization equipment |
| CN108241522B (en) * | 2016-12-27 | 2022-05-17 | 阿里巴巴集团控股有限公司 | Sleep state switching method and device in virtualization environment and electronic equipment |
| CN108512780B (en) * | 2017-02-28 | 2020-12-15 | 华为技术有限公司 | Timer implementation method and related device |
| CN112817701B (en) * | 2021-02-25 | 2024-03-12 | 北京火山引擎科技有限公司 | Timer processing method, device, electronic equipment and computer readable medium |
| CN114265775B (en) * | 2021-12-21 | 2024-05-24 | 中国科学院信息工程研究所 | Hardware-assisted virtualized environment core detection method and system |
| CN114489816B (en) * | 2021-12-22 | 2024-05-14 | 瑞芯微电子股份有限公司 | Timer device and method for providing timing |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8365168B1 (en) * | 2007-07-09 | 2013-01-29 | Parallels IP Holdings GmbH | Method and system for processing isochronous data packets using virtual USB controller, and placing the isochronous data packets into a look-ahead queue having a plurality of blank packets |
| CN103049331A (en) * | 2012-12-06 | 2013-04-17 | 华中科技大学 | Dynamic scheduling method with virtual function |
| CN103197971A (en) * | 2013-04-22 | 2013-07-10 | 哈尔滨工业大学 | Method for implementing high-accuracy low-CPU (central processing unit)-occupancy timer under Pentium IV architecture of Windows operating system |
| CN104598294A (en) * | 2015-01-07 | 2015-05-06 | 杨学仕 | Efficient and safe virtualization method for mobile equipment and equipment thereof |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7512826B2 (en) * | 2005-04-20 | 2009-03-31 | International Business Machines Corporation | Method, apparatus, and product for an efficient virtualized time base in a scaleable multi-processor computer |
| US7356725B2 (en) * | 2005-09-09 | 2008-04-08 | International Business Machines Corporation | Method and apparatus for adjusting a time of day clock without adjusting the stepping rate of an oscillator |
| US9298651B2 (en) * | 2013-06-24 | 2016-03-29 | International Business Machines Corporation | Continuous in-memory accumulation of hardware performance counter data |
| US20150169339A1 (en) * | 2013-12-13 | 2015-06-18 | International Business Machines Corporation | Determining Horizontal Scaling Pattern for a Workload |
-
2015
- 2015-07-30 CN CN201510458635.0A patent/CN106406974B/en active Active
- 2015-09-09 WO PCT/CN2015/089282 patent/WO2016131247A1/en not_active Ceased
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8365168B1 (en) * | 2007-07-09 | 2013-01-29 | Parallels IP Holdings GmbH | Method and system for processing isochronous data packets using virtual USB controller, and placing the isochronous data packets into a look-ahead queue having a plurality of blank packets |
| CN103049331A (en) * | 2012-12-06 | 2013-04-17 | 华中科技大学 | Dynamic scheduling method with virtual function |
| CN103197971A (en) * | 2013-04-22 | 2013-07-10 | 哈尔滨工业大学 | Method for implementing high-accuracy low-CPU (central processing unit)-occupancy timer under Pentium IV architecture of Windows operating system |
| CN104598294A (en) * | 2015-01-07 | 2015-05-06 | 杨学仕 | Efficient and safe virtualization method for mobile equipment and equipment thereof |
Also Published As
| Publication number | Publication date |
|---|---|
| CN106406974A (en) | 2017-02-15 |
| WO2016131247A1 (en) | 2016-08-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN106406974B (en) | High-performance timer implementation method for virtual machine and virtual machine | |
| US9483383B2 (en) | Injecting faults at select execution points of distributed applications | |
| US10331468B2 (en) | Techniques for routing service chain flow packets between virtual machines | |
| TWI501102B (en) | Virtual time control apparatus, method, and computer program product thereof | |
| CN101887393B (en) | Equipment fault reproduction method and system based on para-virtualization technique | |
| US10261820B2 (en) | Memory deduplication based on guest page hints | |
| CN102799212B (en) | Global clock system for multi-core multi-processor parallel system, and application method thereof | |
| FI3382551T3 (en) | Distributed hardware tracing | |
| CN101213518A (en) | System and method for optimizing OS context switching by instruction set trapping | |
| US20180095764A1 (en) | Control flow integrity | |
| CN109690497B (en) | Systems and methods for differentiating function performance by input parameters | |
| RU2016127442A (en) | AREA OF MANAGEMENT FOR ADMINISTRATION OF MULTIPLE FLOWS IN A COMPUTER | |
| US12164450B2 (en) | Managing network interface controller-generated interrupts | |
| US10372902B2 (en) | Control flow integrity | |
| US20160283272A1 (en) | Shared resource access control method and apparatus | |
| US9600314B2 (en) | Scheduler limited virtual device polling | |
| CA3043127A1 (en) | Data prefetching method, apparatus, and system | |
| CN115481153A (en) | Data stream processing method and device, electronic equipment and storage medium | |
| CN107003828B (en) | Instrumentation of Graphics Instructions | |
| WO2014054101A1 (en) | Information processing device and performance analysis data collection method | |
| US11210393B2 (en) | Context data control | |
| US11269675B2 (en) | Comprehensive scheduling method and device for problem of interruptability holder preemption | |
| JP6847112B2 (en) | How and devices to process data after node reboot | |
| CN103077069B (en) | The method and device that instruction resolves | |
| KR102144578B1 (en) | Method and apparatus for executing an application based on dynamically loaded module |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | 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 |