US11567884B2ActiveUtilityA1

Efficient management of bus bandwidth for multiple drivers

Assignee: RED HAT INCPriority: Feb 26, 2020Filed: Jul 26, 2021Granted: Jan 31, 2023
Est. expiryFeb 26, 2040(~13.6 yrs left)· nominal 20-yr term from priority
Inventors:Michael Tsirkin
G06F 13/1668G06F 2213/0024G06F 13/4221G06F 13/4234
68
PatentIndex Score
0
Cited by
14
References
20
Claims

Abstract

Systems and methods are disclosed for efficient management of bus bandwidth among multiple drivers. An example method may comprise: receiving a request from a driver to write data via a bus; reading contents of a random access memory (RAM) at a specified interval of time to determine whether the data written by the driver is accumulated in the RAM; responsive to determining that the data written by the driver is accumulated in the RAM, determining whether a bandwidth of the bus satisfies a bandwidth condition; and responsive to determining that the bandwidth satisfies the bandwidth condition, forwarding, via the bus, a portion of the data written by the driver in the RAM to a device memory of a device.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method comprising:
 receiving, from a driver, a request pertaining to writing data to a device memory of a device via a bus; 
 causing the driver to write the data to a random access memory (RAM); 
 reading contents of the RAM at a specified interval of time to determine whether the data written by the driver is stored in the RAM; 
 responsive to determining that the data written by the driver is stored in the RAM, determining whether a bandwidth of the bus satisfies a bandwidth condition; and 
 responsive to determining that the bandwidth satisfies the bandwidth condition, forwarding, via the bus, a portion of the data written by the driver in the RAM to the device memory of the device. 
 
     
     
       2. The method of  claim 1 , further comprising:
 responsive to determining that the bandwidth does not satisfy the bandwidth condition, continue to monitor the bandwidth until determining that the bandwidth satisfies the bandwidth condition. 
 
     
     
       3. The method of  claim 1 , further comprising:
 overwriting the portion of the data written by the driver in the RAM with an invalid data that the driver is known not to write. 
 
     
     
       4. The method of  claim 1 , further comprising:
 mapping one or more addresses associated with the driver to the RAM to allow the driver to write the data to the RAM. 
 
     
     
       5. The method of  claim 4 , further comprising:
 responsive to determining that the driver has not written to the RAM for a specified amount of time:
 performing a write-protect operation on the RAM such that the driver is not allowed to write to the RAM; and 
 un-mapping the one or more addresses associated with the driver from the RAM and mapping the one or more addresses associated with the driver to the device memory to allow the driver to write directly to the device memory until a change in the bandwidth of the bus is detected. 
 
 
     
     
       6. The method of  claim 1 , further comprising:
 responsive to detecting an access request from the driver, forwarding the data written by the driver in the RAM to the device memory. 
 
     
     
       7. The method of  claim 1 , wherein the driver supports a user application. 
     
     
       8. The method of  claim 1 , wherein the driver supports a virtual machine. 
     
     
       9. A system comprising:
 a memory; and 
 a processing device operatively coupled to the memory, to: 
 receive, from a driver, a request pertaining to writing data to a device memory of a device via a bus; 
 cause the driver to write the data to a random access memory (RAM); 
 read contents of the RAM at a specified interval of time to determine whether the data written by the driver is stored in the RAM; 
 responsive to determining that the data written by the driver is stored in the RAM, determine whether a bandwidth of the bus satisfies a bandwidth condition; and 
 responsive to determining that the bandwidth satisfies the bandwidth condition, forward, via the bus, a portion of the data written by the driver in the RAM to the device memory of the device. 
 
     
     
       10. The system of  claim 9 , wherein the processing device is further to:
 overwrite the portion of the data written by the driver in the RAM with an invalid data that the driver is known not to write. 
 
     
     
       11. The system of  claim 9 , wherein the processing device is further to:
 map one or more addresses associated with the driver to the RAM to allow the driver to write the data to the RAM. 
 
     
     
       12. The system of  claim 11 , wherein the processing device is further to:
 responsive to determining that the driver has not written to the RAM for a specified amount of time:
 perform a write-protect operation on the RAM such that the driver is not allowed to write to the RAM; and 
 un-map the one or more addresses associated with the driver from the RAM and map the one or more addresses associated with the driver to the device memory to allow the driver to write directly to the device memory until a change in the bandwidth of the bus is detected. 
 
 
     
     
       13. The system of  claim 9 , wherein the processing device is further to:
 responsive to detecting an access request from the driver, forward the data written by the driver in the RAM to the device memory. 
 
     
     
       14. A non-transitory computer-readable medium comprising instructions that, when executed by a processing device, cause the processing device to perform operations comprising:
 receiving, from a driver, a request pertaining to writing data to a device memory of a device via a bus; 
 causing the driver to write the data to a random access memory (RAM); 
 reading contents of the RAM at a specified interval of time to determine whether the data written by the driver is stored in the RAM; 
 responsive to determining that the data written by the driver is stored in the RAM, determining whether a bandwidth of the bus satisfies a bandwidth condition; and 
 responsive to determining that the bandwidth satisfies the bandwidth condition, forwarding, via the bus, a portion of the data written by the driver in the RAM to the device memory of the device. 
 
     
     
       15. The non-transitory computer-readable medium of  claim 14 , wherein the processing device is to perform further operations comprising:
 overwriting the portion of the data written by the driver in the RAM with an invalid data that the driver is known not to write. 
 
     
     
       16. The non-transitory computer-readable medium of  claim 14 , wherein the processing device is to perform further operations comprising:
 mapping one or more addresses associated with the driver to the RAM to allow the driver to write the data to the RAM. 
 
     
     
       17. The non-transitory computer-readable medium of  claim 16 , wherein the processing device is to perform further operations comprising:
 responsive to determining that the driver has not written to the RAM for a specified amount of time:
 performing a write-protect operation on the RAM such that the driver is not allowed to write to the RAM; and 
 un-mapping the one or more addresses associated with the driver from the RAM and mapping the one or more addresses associated with the driver to the device memory to allow the driver to write directly to the device memory until a change in the bandwidth of the bus is detected. 
 
 
     
     
       18. The non-transitory computer-readable medium of  claim 14 , wherein the processing device is to perform further operations comprising:
 responsive to detecting an access request from the driver, forwarding the data written by the driver in the RAM to the device memory. 
 
     
     
       19. The non-transitory computer-readable medium of  claim 14 , wherein the bandwidth satisfies the bandwidth condition when an available bandwidth of the bus is equal to or greater than a first threshold bandwidth value. 
     
     
       20. The non-transitory computer-readable medium of  claim 14 , wherein the bandwidth satisfies the bandwidth condition when a current bandwidth of the bus is less than a second threshold bandwidth value.

Join the waitlist — get patent alerts

Track US11567884B2 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.