Virtual container storage interface controller
US-12175078-B2 · Dec 24, 2024 · US
US2018046536A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2018046536-A1 |
| Application number | US-201615343970-A |
| Country | US |
| Kind code | A1 |
| Filing date | Nov 4, 2016 |
| Priority date | Aug 9, 2016 |
| Publication date | Feb 15, 2018 |
| Grant date | — |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Processing faults in a virtual computing environment. A method includes receiving a request to perform a memory access for a virtual machine. The method further includes identifying that that the memory access is unable to be performed without taking a fault. The method further includes identifying that a virtual fault can be taken to service the fault. The virtual fault is taken by servicing the fault asynchronously with respect to the virtual machine. The method further includes identifying that a virtual fault should be taken by evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously. As a result of identifying that a virtual fault should be taken, the method farther includes notifying the virtual machine that a virtual fault should be taken for the memory access. The method further includes servicing the fault asynchronously with respect to the virtual machine.
Opening claim text (preview).
What is claimed is: 1 . A system comprising: one or more processors; and one or more computer-readable media having stored thereon instructions that are executable by the one or more processors to configure the computer system to process faults in a virtual computing environment, including instructions that are executable to configure the system to perform at least the following: receive a request to perform a memory access for a virtual machine; identify that that the memory access is unable to be performed without taking a fault; identify that a virtual fault can be taken to service the fault, where the virtual fault is taken by servicing the fault asynchronously with respect to the virtual machine; identify that a virtual fault should be taken by evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously; as a result of identify that a virtual fault should be taken, notifying the virtual machine that a virtual fault should be taken for the memory access; and service the fault asynchronously with respect to the virtual machine. 2 . The system of claim 1 , wherein evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously comprises evaluating criteria indicating how long the fault will take to service. 3 . The system of claim 1 , wherein evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously comprises evaluating criteria indicating whether the fault is a hard fault or a soft fault. 4 . The system of claim 1 , wherein evaluating criteria to weigh taking virtual fault for servicing the fault asynchronously versus servicing the fault synchronously comprises evaluating criteria identifying whether or not a memory page needs to be zeroed to service the fault. 5 . The system of claim 1 , wherein evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously comprises evaluating criteria identifying whether or not a memory page needs to be decompressed to service the fault. 6 . The system of claim 1 , wherein evaluating criteria to weigh taking a a fault for servicing the fault asynchronously versus servicing the fault synchronously comprises evaluating criteria identifying priority of one or more virtual machines. 7 . The system of claim 1 , wherein evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously comprises evaluating criteria identifying evaluating priority of one or more threads scheduled to be run by virtual machines. 8 . The system of claim 1 , wherein evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously comprises evaluating criteria identifying a rate at which faults are occurring. 9 . The system of claim 1 , wherein evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously comprises evaluating criteria identifying whether there are other runnable threads at the virtual machine. 10 . The system of claim 1 , wherein evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously comprises evaluating criteria identifying a cost for synchronous fault servicing versus a cost for asynchronous fault servicing. 11 . A computer implemented method for processing faults in a virtual computing environment, the method comprising: receiving a request to perform a memory access for a virtual machine; identifying that that the memory access is unable to be performed without taking a fault; identifying that a virtual fault can be taken to service the fault,-here the virtual fault is taken by servicing the fault asynchronously with respect to the virtual machine; identifying that a virtual fault should be taken by evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously; as a result of identifying that a virtual fault should be taken, notifying the virtual machine that a virtual fault should be taken for the memory access; and servicing the fault asynchronously with respect to the virtual machine. 12 . The method of claim 11 , wherein evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously comprises evaluating criteria indicating how long the fault will take to service. 13 . The method of claim 11 , wherein evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously comprises evaluating criteria indicating whether the fault is a hard fault or a soft fault. 14 . The method of claim 11 , wherein evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously comprises evaluating criteria identifying whether or not a memory page needs to be zeroed to service the fault. 15 . The method of claim 11 , wherein evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously comprises evaluating criteria identifying whether or not a memory page needs to be decompressed to service the fault. 16 . The method of claim 11 , wherein evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously comprises evaluating criteria identifying priority of one or more virtual machines. 17 . The method of claim 11 , wherein evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously comprises evaluating criteria identifying evaluating priority of one or more threads scheduled to be run by virtual machines. 18 . The method of claim 11 , wherein evaluating criteria to weigh taking a a fault for servicing the fault asynchronously versus servicing the fault synchronously comprises evaluating criteria identifying a rate at which faults are occurring. 19 . The method of claim 11 , wherein evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously comprises evaluating criteria identifying whether there are other runnable threads at the virtual machine. 20 . A host computer system comprising: a host portion, the host portion comprising one or more physical processors for hosting virtual processors for virtual machines; a hypervisor coupled to the host portion, wherein the hypervisor manages running virtual machines on the host computer system; one or more virtual machines, wherein at least one of the one or more virtual machines comprises a guest virtual machine enlightenment that allows the hypervisor to notify a guest virtual machine that it has taken such an intercept to allow the guest virtual machine to de-schedule a current faulting thread from a physical processor; and wherein the hypervisor is configured to determine if a virtual fault should be taken by evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously.
Hypervisor-specific management and integration aspects · CPC title
Remedial or corrective actions (recovery from an exception in an instruction pipeline G06F9/3861; by retry G06F11/1402; for recovering from a failure of a protocol instance or entity H04L69/40) · CPC title
Error or fault detection not based on redundancy (power supply failures G06F1/30; network fault management H04L41/06) · CPC title
Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers · CPC title
Root cause analysis, i.e. error or fault diagnosis (in a hardware test environment G06F11/22; in a software test environment G06F11/36) · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.