Virtual container storage interface controller
US-12175078-B2 · Dec 24, 2024 · US
US2017147370A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2017147370-A1 |
| Application number | US-201514948021-A |
| Country | US |
| Kind code | A1 |
| Filing date | Nov 20, 2015 |
| Priority date | Nov 20, 2015 |
| Publication date | May 25, 2017 |
| 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.
A hypervisor receives a request pertaining to a multi-function device managed by the hypervisor from a guest operating system of a virtual machine where the multi-function device comprises a main function and a plurality of sub-functions and the request identifies an address within a configuration space associated with one of the plurality of sub-functions of the multi-function device. The hypervisor determines the main function of the multi-function device in view of the address of the configuration space associated with the sub-function, accesses a data structure associated with the main function to obtain an indicator of availability of the main function to the guest operating system, and determines, view of the indicator of availability, whether the main function is available to the guest operating system. Responsive to determining that the main function is not available, the hypervisor rejects the request from the guest operating system to access the address within the configuration space associated with the sub-function.
Opening claim text (preview).
What is claimed is: 1 . A method comprising: receiving, by a processing device executing, a hypervisor, a request pertaining to a multi-function device managed by the hypervisor from a guest operating system of a virtual machine, the multi-function device comprising a main function and a plurality of sub-functions, the request identifying an address within a configuration space associated with one of the plurality of sub-functions of the multi-function device: determining, by the hypervisor, the main function of the multi-function device in view of the address of the configuration space associated with the sub-function; accessing, by the hypervisor; a data structure associated with the main function to obtain an indicator of availability of the main function to the guest operating system; determining, by the hypervisor in view of the indicator of availability, whether the main function is available to the guest operating system; and responsive to determining that the main function is not available, rejecting, by the hypervisor, the request from the guest operating system to access the address within the configuration space associated with the sub-function. 2 . The method of claim 1 , further comprising: receiving a request to add the multi-function device to the virtual machine; creating the data structure associated with the main function of the multi-function device; and setting the indicator of availability in the data structure associated with the main function to a value that indicates that the main function is not available to the guest operating system. 3 . The method of claim 2 , further comprising: initializing the main function of the multi-function device; initializing the plurality of sub-functions associated with the main function: and responsive to determining that initialization of the plurality of sub-functions has completed, setting the indicator of availability in the data structure associated with the main function a value that indicates that the main function is available to the guest operating system. 4 . The method of claim 3 , wherein initializing the main function comprises: creating the configuration space associated with the main function of the multi-function device; associating the main function with a virtual Peripheral Component Interconnect (PCI) bus to be exposed to the virtual machine; and associating the virtual PCI bus with the virtual machine. 5 . The method of claim 3 , wherein initializing the plurality of sub-functions comprises: creating an additional configuration space for each of the plurality of sub-functions of the multi-function device; and associating each sub-function with a virtual Peripheral Component Interconnect (PCI) bus to be exposed to the virtual machine. 6 . The method of claim 3 , further comprising: sending a notification to the guest operating system that the main function is available to the guest operating system. 7 . The method of claim 3 , further comprising: identifying performance criteria associated with the virtual machine that indicates when the main function can be made available to the virtual machine; responsive to determining that the performance criteria has been satisfied, setting the availability indicator in the data structure associated with the main function to a value that indicates that the main function is available to the guest operating system; and sending a notification to the guest operating system that the main function is available to the guest operating, system. 8 . A computing apparatus comprising: a memory to store instructions; and a processing device, operatively coupled to the memory, to execute the instructions, wherein the processing device is to: receive, by the processing device executing a hypervisor a request pertaining to multi-function device managed by the hypervisor from a guest operating system of a virtual machine, the multi-function device comprising a main function and a plurality of sub-functions, the request identifying an address within a configuration space associated with one of the plurality of sub-functions of the multi-function device; determine, by the hypervisor, the main function of the multi-function device in view of the address of the configuration space associated with the sub-function: access, by the hypervisor, a data structure associated with the main function to obtain an indicator of availability of the main function to the guest operating system: determine, by the hypervisor in view of the indicator of availability, whether the main function is available to the guest operating system; and responsive to determining that the main function is not available, by the hypervisor, the request from the guest operating system to access the address within the configuration space associated with the sub-function. 9 . The apparatus of claim 8 , wherein the processing device is further to: receive a request to add the multi-function device to the virtual machine; create the data structure associated with the main function of the multi-function device; and set the indicator of availability in the data structure associated with the main function to a value that indicates that the main function is not available to the guest operating system. 10 . The apparatus of claim 9 , wherein the processing device is further to: initialize the main function of the multi-function device; initialize the plurality of sub-functions associated with the main function; and responsive to determining that initialization of the plurality of sub-functions has completed, set the indicator of availability in the data structure associated with the main function to a value that indicates that the main function is available to the guest operating system 11 . The apparatus of claim 10 , wherein to initialize the main function, the processing device is to: create the configuration space associated with the main function of the multi-function device; associate the main function with a virtual Peripheral Component Interconnect (PCI) bus to be exposed to the virtual machine; and associate the virtual PCI bus with the virtual machine. 12 . The apparatus of claim 10 , wherein to initialize the plurality of sub-functions, the processing device is to: create an additional configuration space for each of the plurality of sub-functions of the multi-function device; and associate each sub-function with a virtual Peripheral Component interconnect (PCI) bus to be exposed to the virtual machine. 13 . The apparatus of claim 10 , wherein the processing device is further to: send a notification to the guest operating system that the main function is available to the guest operating system. 14 . The apparatus of claim 10 , wherein the processing device is further to: identify performance criteria associated with the virtual machine that indicates when the main function can be made available to the virtual machine, responsive to determining that the performance criteria has been satisfied, set the availability indicator in the data structure associated with the main function to a value that indicates that the main function is available to the guest operating system; and send a notification to the guest operating system that the main function is available to the guest operating system, 15 . A non-transitory computer readable storage medium, having instructions stored therein, which when executed by a processing device of a computer system, cause the processing device to: receive, by the processing device executing a hypervisor, a request to add a multi-function
I/O management, e.g. providing access to device drivers or storage · CPC title
on a serial bus, e.g. I2C bus, SPI bus (on daisy chain buses G06F13/4247) · CPC title
Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox · CPC title
Hypervisor-specific management and integration aspects · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.