US10572623B2ActiveUtilityA1

Back-pressure in virtual machine interface

51
Assignee: MENTOR GRAPHICS CORPPriority: Oct 25, 2016Filed: Jan 23, 2017Granted: Feb 25, 2020
Est. expiryOct 25, 2036(~10.3 yrs left)· nominal 20-yr term from priority
G06F 30/30G06F 11/2289G06F 11/261G06F 30/331G06F 11/221G06F 30/3312G06F 30/34G06F 11/2221G06F 13/1673G06F 30/3323G06F 30/39G06F 11/2733G06F 17/5031G06F 17/5081G06F 17/5054G06F 17/5068G06F 17/504G06F 17/5077G06F 30/398G06F 30/394G06F 30/347G06F 2115/02G06F 30/343
51
PatentIndex Score
0
Cited by
8
References
15
Claims

Abstract

This application discloses a computing system having a virtual machine and a host program that communicate via a virtual interface. The virtual machine can generate a data packet for transmission to the host program via the virtual interface. The virtual machine can receive a saturation signal generated by a virtual interface driver in the virtual interface. The virtual interface driver can be configured to populate a virtual buffer in the virtual interface with the data packet. The virtual machine can determine an availability of resources in the virtual buffer to store the data packet based, at least in part, on the saturation signal, and selectively stall transmission of the data packet to the host program based, at least in part, on the saturation signal. The host program can bypass a hypervisor in the computing system to directly access the virtual buffer in the virtual interface.

Claims

exact text as granted — not AI-modified
The invention claimed is: 
     
       1. A method comprising:
 generating, by a virtual machine in a computing system, a data packet for transmission to a host program in the computing system via a virtual buffer, wherein the host program is configured to transmit the data packet to a verification system implementing a design under test; 
 receiving, by the virtual machine, a saturation signal generated by a virtual interface driver configured to populate the virtual buffer with the data packet; 
 determining, by the virtual machine, available storage space in the virtual buffer to store the data packet based, at least in part, on the saturation signal; and 
 delaying, by the virtual machine, transmission of the data packet by the virtual machine to the host program in the computing system via the virtual buffer when a size of the data packet exceeds a magnitude of the available storage space in the virtual buffer to store the data packet. 
 
     
     
       2. The method of  claim 1 , wherein delaying transmission of the data packet to the host program in the computing system is based on the available storage space in the virtual buffer indicated by the saturation signal. 
     
     
       3. The method of  claim 1  further comprises transmitting the data packet for population in the virtual buffer when the magnitude of the available storage space in the virtual buffer exceeds the size of the data packet. 
     
     
       4. The method of  claim 1 , wherein the virtual interface driver is configured to generate the saturation signal based, at least in part, on which portions of the virtual buffer include other data packets from the virtual machine that are awaiting transmission to the host program in the computing system. 
     
     
       5. The method of  claim 1 , further comprises receiving, by the virtual machine, a different data packet from the host program via the virtual buffer, wherein the host program in the computing system is configured selectively store the different data packet to the virtual buffer based on resources in the virtual buffer available to the store the different data packet. 
     
     
       6. An apparatus comprising at least one memory device storing instructions configured to cause one or more processing devices to perform operations comprising:
 generating, by a virtual machine implemented by the one or more processing devices, a data packet for transmission to a host program implemented by the one or more processing devices via a virtual buffer, wherein the host program is configured to transmit the data packet to a verification system implementing a design under test; 
 receiving, by the virtual machine, a saturation signal generated by a virtual interface driver configured to populate the virtual buffer with the data packet; 
 determining, by the virtual machine, available storage space in the virtual buffer to store the data packet based, at least in part, on the saturation signal; and 
 delaying, by the virtual machine, transmission of the data packet by the virtual machine to the host program in the computing system via the virtual buffer when a size of the data packet exceeds a magnitude of the available storage space in the virtual buffer to store the data packet. 
 
     
     
       7. The apparatus of  claim 6 , wherein delaying transmission of the data packet to the host program in the computing system is based on the available storage space in the virtual buffer indicated by the saturation signal. 
     
     
       8. The apparatus of  claim 6 , wherein the instructions are further configured to cause the one or more processing devices to perform operations comprising transmitting the data packet for population in the virtual buffer when the magnitude of the available storage space in the virtual buffer exceeds the size of the data packet. 
     
     
       9. The apparatus of  claim 6 , wherein the virtual interface driver is configured to generate the saturation signal based, at least in part, on which portions of the virtual buffer include other data packets from the virtual machine that are awaiting transmission to the host program in the computing system. 
     
     
       10. The apparatus of  claim 6 , wherein the instructions are further configured to cause the one or more processing devices to perform operations comprising receiving, by the virtual machine, a different data packet from the host program via the virtual buffer, wherein the host program in the computing system is configured selectively store the different data packet to the virtual buffer based on resources in the virtual buffer available to the store the different data packet. 
     
     
       11. A system comprising:
 a memory device configured to store machine-readable instructions; and 
 a computing system including one or more processing devices, in response to executing the machine-readable instructions, configured to:
 generate, with a virtual machine in the computing system, a data packet for transmission to a host program in the computing system via a virtual buffer, wherein the host program is configured to transmit the data packet to a verification system implementing a design under test; 
 receive, with the virtual machine, a saturation signal generated by a virtual interface driver configured to populate the virtual buffer with the data packet; 
 determine, with the virtual machine, available storage space in the virtual buffer to store the data packet based, at least in part, on the saturation signal; and 
 delay, by the virtual machine, transmission of the data packet by the virtual machine to the host program in the computing system via the virtual buffer when a size of the data packet exceeds a magnitude of the available storage space in the virtual buffer to store the data packet. 
 
 
     
     
       12. The system of  claim 11 , wherein the delay in the transmission of the data packet to the host program in the computing system is based on the available storage space in the virtual buffer indicated by the saturation signal. 
     
     
       13. The system of  claim 11 , wherein the one or more processing devices, in response to executing the machine-readable instructions, are configured to transmit the data packet for population in the virtual buffer when the magnitude of the available storage space in the virtual buffer exceeds the size of the data packet. 
     
     
       14. The system of  claim 11 , wherein the virtual interface driver is configured to generate the saturation signal based, at least in part, on which portions of the virtual buffer include other data packets from the virtual machine that are awaiting transmission to the host program in the computing system. 
     
     
       15. The system of  claim 11 , wherein the one or more processing devices, in response to executing the machine-readable instructions, are configured to receive, with the virtual machine, a different data packet from the host program via the virtual buffer, wherein the host program in the computing system is configured selectively store the different data packet to the virtual buffer based on resources in the virtual buffer available to the store the different data packet.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.