US2022334991A1PendingUtilityA1

Software-driven remapping hardware cache quality-of-service policy based on virtual machine priority

Individually held — no corporate assignee on recordPriority: Jun 30, 2022Filed: Jun 30, 2022Published: Oct 20, 2022
Est. expiryJun 30, 2042(~15.9 yrs left)· nominal 20-yr term from priority
G06F 2212/502G06F 2212/152G06F 2212/657G06F 12/1081G06F 2212/507G06F 12/1072G06F 12/1036G06F 12/109G06F 13/28G06F 12/10G06F 2213/28
43
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Systems, methods, and devices for software-driven resource reservation of an input/output memory management unit (IOMMU) are provided. A system may include a peripheral device and a processing device. The peripheral device may be accessible to a virtual machine running on the processing device via direct memory access (DMA) that is translated by an IOMMU). The processing device may run the virtual machine and a virtual machine manager. The processing device also includes the IOMMU, which is configurable to reserve a subset of resources of the IOMMU to the virtual machine based on a descriptor provided by the virtual machine manager.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A system comprising:
 a peripheral device accessible to a virtual machine via direct memory access (DMA) translated by an input/output memory management unit (IOMMU); and   a processing device to run the virtual machine and a virtual machine manager to manage the virtual machine, wherein the processing device comprises the IOMMU, and wherein the IOMMU is configurable to reserve a subset of resources of the IOMMU to the virtual machine based on a descriptor provided by the virtual machine manager.   
     
     
         2 . The system of  claim 1 , wherein the descriptor comprises a first field to identify the virtual machine to cause the IOMMU to reserve the subset of the resources of the IOMMU to the virtual machine. 
     
     
         3 . The system of  claim 2 , wherein the first field defines a domain identifier of the virtual machine. 
     
     
         4 . The system of  claim 2 , wherein the descriptor comprises a second field to identify an application running on the virtual machine to cause the IOMMU to reserve the subset of the resources of the IOMMU to the application running on the virtual machine. 
     
     
         5 . The system of  claim 4 , wherein the second field defines a process address space identifier (PASID) of the application. 
     
     
         6 . The system of  claim 1 , wherein the descriptor comprises a field to define a requested level of priority to cause the IOMMU to reserve the subset of the resources of the IOMMU to the virtual machine according to the requested level. 
     
     
         7 . The system of  claim 1 , wherein the IOMMU is configurable to stop reserving the subset of the resources of the IOMMU to the virtual machine based on a second descriptor provided by the virtual machine manager. 
     
     
         8 . The system of  claim 7 , wherein the second descriptor comprises a field that specifies that the second descriptor is a stop priority descriptor to the IOMMU to cause the IOMMU to stop reserving the subset of the resources of the IOMMU to the virtual machine. 
     
     
         9 . The system of  claim 7 , wherein the second descriptor comprises a field to define a requested level of priority, set to a lowest level of priority, and to cause the IOMMU to stop reserving the subset of the resources of the IOMMU to the virtual machine. 
     
     
         10 . The system of  claim 1 , wherein the subset of the resources of the IOMMU comprises cache resources of the IOMMU. 
     
     
         11 . The system of  claim 1 , wherein the peripheral device comprises at least one of a scalable input/output virtualization (SIOV) device and a single-root input/output virtualization (SR-IOV) device. 
     
     
         12 . An article of manufacture comprising one or more tangible, non-transitory machine-readable media comprising instructions that, when executed by a processing device, cause the processing device to:
 determine that first software interfacing with a peripheral device is running a critical workload; and   issue a priority descriptor to an input/output memory management unit (IOMMU) to cause the IOMMU to carry out a quality of service (QoS) policy that prioritizes the first software over second software.   
     
     
         13 . The article of manufacture of  claim 12 , wherein the instructions to determine that the first software is running a critical workload comprise instructions that, when executed by the processing device, cause the processing device to receive a user request to prioritize the first software over other software also interfacing with the peripheral device. 
     
     
         14 . The article of manufacture of  claim 12 , wherein:
 the first software comprises a virtual machine running on the processing device; and   the instructions to determine that the first software is running the critical workload comprise instructions that, when executed by the processing device, cause the processing device to determine that the first software is running the critical workload when the virtual machine is undergoing migration.   
     
     
         15 . The article of manufacture of  claim 12 , wherein:
 the first software comprises a non-virtualized application running on the processing device; and   the instructions to determine that the first software is running the critical workload comprise instructions that, when executed by the processing device, cause the processing device to determine, using an operating system of the processing device, that the first software is running the critical workload.   
     
     
         16 . The article of manufacture of  claim 12 , wherein the priority descriptor comprises:
 a type field encoding a start of prioritization to the IOMMU; and   one or more fields identifying the first software.   
     
     
         17 . The article of manufacture of  claim 16 , wherein the one or more fields identifying the first software comprise:
 a domain identifier field corresponding to the first software; and   a process address space identifier (PASID) corresponding to the critical workload.   
     
     
         18 . The article of manufacture of  claim 12 , wherein the priority descriptor comprises a priority level field to indicate a level of quality of service (QoS) policy to implement in the IOMMU. 
     
     
         19 . An input/output memory management unit (IOMMU) to provide address translation to enable software to interact with a peripheral device, wherein the input/output memory management unit (IOMMU) comprises:
 caching circuitry to cache data corresponding to address translation relating to the peripheral device; and   a capability register to identify that the input/output memory management unit (IOMMU) is configurable to reserve a subset of resources of the caching circuitry for specified software.   
     
     
         20 . The input/output memory management unit (IOMMU) of  claim 19 , wherein the caching circuitry comprises at least one of an input/output translation lookaside buffer (IOTLB), a context cache, a process address space identifier (PASID) cache, or a paging cache.

Join the waitlist — get patent alerts

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

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