Pci slot hot-addition deferral for multi-function devices

US2017147370A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2017147370-A1
Application numberUS-201514948021-A
CountryUS
Kind codeA1
Filing dateNov 20, 2015
Priority dateNov 20, 2015
Publication dateMay 25, 2017
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • 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

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2017147370A1 cover?
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 hype…
Who is the assignee on this patent?
Red Hat Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/45558. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu May 25 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).