Performance improvements for nested virtual machines
AssigneeInternational Business Machines Corporation
InventorsMarcel Mitran, Ali I. Sheikh
Life of this patent
Estimating the term…
Abstract
Nested virtual machines cooperate with one another to improve system performance. In particular, an outer virtual machine performs tasks on behalf of an inner virtual machine to improve system performance. One such task includes translation of instructions for the inner virtual machine.
Claims20
A computer-implemented method to facilitate translation of computer instructions, said method comprising:
- receiving, by an outer virtual machine of a computing environment, a translation request from an inner virtual machine of the computing environment to translate on behalf of the inner virtual machine at least one instruction of an architecture of the inner virtual machine and indicative of a function to be performed, wherein the inner virtual machine is running on the outer virtual machine;
- translating, by the outer virtual machine, the at least one instruction of the architecture of the inner virtual machine to at least one translated instruction of a native architecture on which the outer virtual machine runs, wherein the native architecture and an architecture of the outer virtual machine are different architectures such that the native architecture is unable to directly execute instructions of the architecture of the outer virtual machine, and wherein the architecture of the outer virtual machine and the architecture of the inner virtual machine are different architectures such that the architecture of the outer virtual machine is unable to directly execute instructions of the architecture of the inner virtual machine;
- and
- based on receiving, by the outer virtual machine, an execution request from the inner virtual machine to execute the at least one translated instruction on behalf of the inner virtual machine, initiating, by the outer virtual machine, execution of the at least one translated instruction.
A computer program product for facilitating translation of computer instructions, said computer program product comprising:
- a non-transitory computer readable storage medium readable by a processor and storing instructions for execution by the processor for performing a method comprising:
- receiving, by an outer virtual machine of a computing environment, a translation request from an inner virtual machine of the computing environment to translate on behalf of the inner virtual machine at least one instruction of an architecture of the inner virtual machine and indicative of a function to be performed, wherein the inner virtual machine is running on the outer virtual machine;
- translating, by the outer virtual machine, the at least one instruction of the architecture of the inner virtual machine to at least one translated instruction of a native architecture on which the outer virtual machine runs, wherein the native architecture and an architecture of the outer virtual machine are different architectures such that the native architecture is unable to directly execute instructions of the architecture of the outer virtual machine, and wherein the architecture of the outer virtual machine and the architecture of the inner virtual machine are different architectures such that the architecture of the outer virtual machine is unable to directly execute instructions of the architecture of the inner virtual machine;
- and
- based on receiving, by the outer virtual machine, an execution request from the inner virtual machine to execute the at least one translated instruction on behalf of the inner virtual machine, initiating, by the outer virtual machine, execution of the at least one translated instruction.
A computer program product for facilitating processing within a computing environment, said computer program product comprising:
- a non-transitory computer readable storage medium readable by a processor and storing instructions for execution by the processor for performing a method comprising:
- receiving, by an outer virtual machine of a computing environment, a communication from an inner virtual machine of the computing environment to perform a task on behalf of the inner virtual machine, said outer virtual machine and said inner virtual machine cooperating with one another, wherein the inner virtual machine is running on the outer virtual machine and wherein an architecture of the inner virtual machine is of a different architecture than an architecture of the outer virtual machine such that the architecture of the outer virtual machine is unable to directly execute instructions of the architecture of the inner virtual machine;
- performing the task by the outer virtual machine based on the communication, said task related to improving performance of the computing environment and comprising performing a translation of at least one instruction of the architecture of the inner virtual machine to at least one translated instruction of a native architecture on which the outer virtual machine runs, wherein the native architecture and the architecture of the outer virtual machine are different architectures such that the native architecture is unable to directly execute instructions of the architecture of the outer virtual machine;
- and
- based on receiving, by the outer virtual machine, an execution request from the inner virtual machine to execute the at least one translated instruction on behalf of the inner virtual machine, initiating, by the outer virtual machine, execution of the at least one translated instruction.
A computer system for facilitating translation of computer instructions, said computer system comprising:
- a memory;
- and
- a processor in communications with the memory, wherein the computer system is configured to perform a method, said method comprising:
- receiving, by an outer virtual machine of a processor of a computing environment, a translation request from an inner virtual machine of the computing environment to translate on behalf of the inner virtual machine at least one instruction of an architecture of the inner virtual machine and indicative of a function to be performed, wherein the inner virtual machine is running on the outer virtual machine;
- translating, by the outer virtual machine, the at least one instruction of the architecture of the inner virtual machine to at least one translated instruction of a native architecture on which the outer virtual machine runs, wherein the native architecture and an architecture of the outer virtual machine are different architectures such that the native architecture is unable to directly execute instructions of the architecture of the outer virtual machine, and wherein the architecture of the outer virtual machine and the architecture of the inner virtual machine are different architectures such that the architecture of the outer virtual machine is unable to directly execute instructions of the architecture of the inner virtual machine;
- and
- based on receiving, by the outer virtual machine, an execution request from the inner virtual machine to execute the at least one translated instruction on behalf of the inner virtual machine, initiating, by the outer virtual machine, execution of the at least one translated instruction.
Dependencies are inferred from the claim text.