Unified hypercall interface across processors in virtualized computing systems

US11550609B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11550609-B2
Application numberUS-202016744356-A
CountryUS
Kind codeB2
Filing dateJan 16, 2020
Priority dateJan 16, 2020
Publication dateJan 10, 2023
Grant dateJan 10, 2023

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.

An example method of interfacing with a hypervisor in a computing system is described, which includes a processor having at least three hierarchical privilege levels including a third privilege level more privileged than a second privilege level, the second privilege level more privileged than a first privilege level. The method includes: identifying an input/output (I/O) space instruction, not supported by the processor, to be performed for backdoor communication between the hypervisor and guest software executing in a virtual machine (VM) managed by the hypervisor, the hypervisor executing at the third privilege level; writing one or more parameters to one or more registers of the processor that are mapped to one or more unsupported registers used by the I/O space instruction; writing a value indicative of the I/O space instruction to a designated register of the processor; executing an instruction, by the guest software executing at the first or second privilege level, which is trapped to the third privilege level.

First claim

Opening claim text (preview).

We claim: 1. A method of interfacing with a hypervisor in a computing system, which includes a processor having at least three hierarchical privilege levels associated with respective distinct code execution privileges, the hierarchical privilege levels including: a third privilege level accessible by code executing at the third privilege level, a second privilege level accessible by code executing at the third privilege level and the second privilege level, and a first privilege level accessible by code executing at any of the first privilege level, the second privilege level, or the third privilege level, wherein the third privilege level is higher than the second privilege level and the second privilege level is higher than the first privilege level, the method comprising: identifying, by a guest support tool executing in a virtual machine (VM) managed by the hypervisor, an input/output (I/O) space instruction, not supported by the processor, to be performed for backdoor communication between the hypervisor and the guest support tool executing in the VM managed by the hypervisor, the hypervisor executing at the third privilege level, wherein the processor comprises a plurality of registers comprising: at least one first register accessible by code executing at the first privilege level or higher, at least one second register accessible by code executing at the second privilege level or higher and at least one third register accessible by code executing at the third privilege level or higher; and writing, by the guest support tool, one or more parameters to one or more registers of the processor that are mapped to one or more unsupported registers used by the I/O space instruction, wherein the one or more parameters comprise one or more of: an I/O port address; a virtual address of a memory of the computing system; or a number of repetitions to perform the I/O space instruction; writing a value indicative of the I/O space instruction to a designated register of the processor; and executing an instruction, by the guest support tool executing at the first or second privilege level, which is trapped to the third privilege level, wherein executing the instruction enables the hypervisor to: identify the I/O space instruction based on the value stored in the designated register; obtain parameters associated with the I/O space instruction from the one or more registers; and emulate the I/O space instruction in accordance with the identified I/O space instruction and the one or more parameters. 2. The method of claim 1 , further comprising: trapping, at the hypervisor, the instruction executed by the guest software; reading the value from the designated register to identify the I/O space instruction to perform; and reading the one or more parameters from the one or more registers of the processor to obtain the parameters of the I/O space instruction to perform. 3. The method of claim 1 , wherein the I/O space instruction is one of: an instruction to read from a port or an instruction to write to a port. 4. The method of claim 1 , wherein the I/O space instruction is one of: an instruction to write to a port or an instruction to repeatedly write to a port. 5. The method of claim 1 , wherein the one or more parameters comprise an I/O port address and an output value. 6. The method of claim 1 , wherein the value indicative of the I/O space instruction includes a portion indicative of transfer size, a portion indicative of transfer direction, and a portion indicative of instruction type. 7. A non-transitory computer readable medium having instructions stored thereon that when executed by a processor cause the processor to perform a method of interfacing with a hypervisor in a computing system, which includes the processor having at least three hierarchical privilege levels associated with respective distinct code execution privileges, the hierarchical privilege levels including a third privilege level accessible by code executing at the third privilege level, a second privilege level accessible by code executing at the third privilege level and the second privilege level, and a first privilege level accessible by code executing at any of the first privilege level, the second privilege level, or the third privilege level, wherein the third privilege level is higher than the second privilege level and the second privilege level is higher than the first privilege level, the method comprising: identifying, by a guest support tool executing in a virtual machine (VM) managed by the hypervisor, an input/output (I/O) space instruction, not supported by the processor, to be performed for backdoor communication between the hypervisor and the guest support tool executing in the VM managed by the hypervisor, the hypervisor executing at the third privilege level, wherein the processor comprises a plurality of registers comprising: at least one first register accessible by code executing at the first privilege level or higher, at least one second register accessible by code executing at the second privilege level or higher, and at least one third register accessible by code executing at the third privilege level or higher; writing, by the guest support tool, one or more parameters to one or more registers of the processor that are mapped to one or more unsupported registers used by the I/O space instruction, wherein the one or more parameters comprise one or more of: an I/O port address; a virtual address of a memory of the computing system; or a number of repetitions to perform the I/O space instruction; writing a value indicative of the I/O space instruction to a designated register of the processor; and executing an instruction, by the guest support tool executing at the first or second privilege level, which is trapped to the third privilege level, wherein executing the instruction enables the hypervisor to: identify the I/O space instruction based on the value stored in the designated register; obtain parameters associated with the I/O space instruction from the one or more registers; and emulate the I/O space instruction in accordance with the identified I/O space instruction and the one or more parameters. 8. The non-transitory computer readable medium of claim 7 , wherein the method further comprises: trapping, at the hypervisor, the instruction executed by the guest software; reading the value from the designated register to identify the I/O space instruction to perform; and reading the one or more parameters from the one or more registers of the processor to obtain the parameters of the I/O space instruction to perform. 9. The non-transitory computer readable medium of claim 7 , wherein the I/O space instruction is one of: an instruction to read from a port or an instruction to write to a port. 10. The non-transitory computer readable medium of claim 7 , wherein the I/O space instruction is one of: an instruction to write to a port or an instruction to repeatedly write to a port. 11. The non-transitory computer readable medium of claim 7 , wherein the one or more parameters comprise an I/O port address and an output value. 12. The non-transitory computer readable medium of claim 7 , wherein the value indicative of the I/O space instruction includes a portion indicative of transfer size, a portion indicative of transfer direction, and a portion indicative of instruction type. 13. A computing system, comprising: a hardware platform having a processor and a memory, the processor having at least three hierarchical privilege levels associated with respective distinct code execution privileges, the hierarchical privilege levels including a thi

Assignees

Inventors

Classifications

  • I/O management, e.g. providing access to device drivers or storage · CPC title

  • Hypervisors; Virtual machine monitors · 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 US11550609B2 cover?
An example method of interfacing with a hypervisor in a computing system is described, which includes a processor having at least three hierarchical privilege levels including a third privilege level more privileged than a second privilege level, the second privilege level more privileged than a first privilege level. The method includes: identifying an input/output (I/O) space instruction, not…
Who is the assignee on this patent?
Vmware Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/45533. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 10 2023 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).