Systems and methods for initializing multiple virtual processors within a single virtual machine
First Claim
1. A method for starting up a virtual machine, said virtual machine emulating a multi-processor computing device, said emulation comprising an emulation of a first virtual processor corresponding to one processor of the multi-processor computing device and an emulation of a second virtual processor corresponding to another processor of the multi-processor computing device, said method comprising:
- generating an initial state of said virtual machine having a guest operating system executing on the first virtual processor corresponding to a first thread of execution,issuing a startup command by the first virtual processor to the second virtual processor corresponding to a second thread of execution;
providing said second virtual processor and its corresponding second thread of execution with the highest priority for utilizing hardware resources so that the second virtual processor can begin a startup in response to receiving the startup command issued by the first virtual processor;
forcing the first virtual processor and its corresponding first thread of execution to relinquish control of at least one hardware resource and providing control to the at least one hardware resource to the second virtual processor and its corresponding second thread of execution;
said second virtual processor and its corresponding second thread of execution completing the startup.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention is a system for and method of initializing multiple virtual processors in a virtual machine (VM) environment. The method of initializing multiple virtual processors includes the steps of the host creating a multiple processor VM and activating a “starter virtual processor,” the “starter virtual processor” issuing a startup command to a next virtual processor, the virtual machine monitor (VMM) giving the target virtual processor the highest priority for accessing the hardware resources, the VMM forcing the “starter virtual processor” to relinquish control of the hardware resources, the VMM handing control of the hardware resources to the target virtual processor, the target virtual processor executing and completing its startup routine, the VMM forcing the target virtual processor to relinquish control of the hardware resources, and the VMM handing control of the hardware resources back to the “starter virtual processor” for activating subsequent virtual processors.
-
Citations
28 Claims
-
1. A method for starting up a virtual machine, said virtual machine emulating a multi-processor computing device, said emulation comprising an emulation of a first virtual processor corresponding to one processor of the multi-processor computing device and an emulation of a second virtual processor corresponding to another processor of the multi-processor computing device, said method comprising:
-
generating an initial state of said virtual machine having a guest operating system executing on the first virtual processor corresponding to a first thread of execution, issuing a startup command by the first virtual processor to the second virtual processor corresponding to a second thread of execution; providing said second virtual processor and its corresponding second thread of execution with the highest priority for utilizing hardware resources so that the second virtual processor can begin a startup in response to receiving the startup command issued by the first virtual processor; forcing the first virtual processor and its corresponding first thread of execution to relinquish control of at least one hardware resource and providing control to the at least one hardware resource to the second virtual processor and its corresponding second thread of execution; said second virtual processor and its corresponding second thread of execution completing the startup. - View Dependent Claims (2, 3)
-
-
4. A method for starting a second virtual processor in a virtual machine environment, said virtual machine environment comprising a guest operating system executing on said virtual machine emulated by a virtual machine monitor, said virtual machine comprising a plurality of virtual processors which are implemented as separate threads of execution, said method comprising:
-
said guest operating system executing on a first virtual processor corresponding to a first thread of execution, and said guest operating system issuing a startup command to start the second virtual processor via said first virtual processor, the second virtual processor corresponding to a second thread of execution; said virtual machine monitor providing said second virtual processor and its corresponding second thread of execution with the highest priority for utilizing hardware resources, thereby preventing said first thread of execution corresponding to said guest operating system from continuing execution and thus preventing a timeout corresponding to said startup command; said virtual machine monitor forcing said first virtual processor and its corresponding first thread of execution to relinquish control of a set of all hardware resources and providing control to the set of all hardware resources to said second virtual processor and its corresponding second thread of execution; in response to receiving the startup command from the first virtual processor, said second virtual processor and its corresponding second thread of execution completing a startup; said virtual machine monitor providing said second virtual processor and its corresponding second thread of execution with a priority other than the highest priority for utilizing hardware resources; and said virtual machine monitor forcing said second virtual processor and its corresponding second thread of execution to relinquish control of said set of all hardware resources and providing control to said set of all hardware resources to said first virtual processor and its corresponding first thread of execution. - View Dependent Claims (5, 6, 7)
-
-
8. A system for starting a virtual machine, said virtual machine emulating a multi-processor computing device, said virtual machine comprising a guest operating system executing on a first virtual processor corresponding to a first thread of execution, said first virtual processor corresponding to an emulation of one processor of the multi-processor computing device, said system comprising:
-
at least one computing device having at least one memory storing instructions that upon execution on the at least one computing device, cause the system to; issue a startup command to a second virtual processor emulated in the same virtual machine and corresponding to a second thread of execution; provide said second virtual processor and its corresponding second thread of execution with the highest priority for utilizing hardware resources; force the first virtual processor and its corresponding first thread of execution to relinquish control of at least one hardware resource and provide control to the at least one hardware resource to the second virtual processor and its corresponding second thread of execution; in response to receiving the startup command, said second virtual processor and its corresponding second thread of execution complete a startup. - View Dependent Claims (9, 10)
-
-
11. A system for starting a second virtual processor in a virtual machine environment, said virtual machine environment comprising a guest operating system executing on said virtual machine emulated by a virtual machine monitor, said virtual machine comprising a plurality of virtual processors which are implemented as separate threads of execution, said system comprising:
-
at least one computing device having at least one memory storing instructions that upon execution on the at least one computing device, at least cause; said guest operating system, to execute on a first virtual processor corresponding to a first thread of execution, issuing a startup command to start the second virtual processor via said first virtual processor, the second virtual processor corresponding to a second thread of execution; said virtual machine monitor to provide said second virtual processor and its corresponding second thread of execution with the highest priority for utilizing hardware resources, thereby preventing said first thread of execution corresponding to said guest operating system from continuing execution and thus preventing a timeout corresponding to said startup command; said virtual machine monitor to force said first virtual processor and its corresponding first thread of execution to relinquish control of a set of all hardware resources and providing control to the set of all hardware resources to said second virtual processor and its corresponding second thread of execution; in response to receiving the startup command from the first virtual processor, said second virtual processor and its corresponding second thread of execution to complete a startup; said virtual machine monitor to provide said second virtual processor and its corresponding second thread of execution with a priority other than the highest priority for utilizing hardware resources; and said virtual machine monitor to force said second virtual processor and its corresponding second thread of execution to relinquish control of said set of all hardware resources and providing control to said set of all hardware resources to said first virtual processor and its corresponding first thread of execution. - View Dependent Claims (12, 13, 14)
-
-
15. A computer-readable storage medium comprising computer-readable instructions for starting a virtual machine emulated by an emulator program, said virtual machine comprising:
a guest operating system executing on a first virtual processor corresponding to a first thread of execution, said first virtual processor corresponding to an emulation of one processor of the multi-processor computing device, said non-transitory computer-readable instructions comprising instructions for; issuing a startup command to a second virtual processor emulated within the virtual machine and corresponding to a second thread of execution; providing said second virtual processor and its corresponding second thread of execution with the highest priority for utilizing hardware resources; forcing the first virtual processor and its corresponding first thread of execution to relinquish control of at least one hardware resource and providing control to the at least one hardware resource to the second virtual processor and its corresponding second thread of execution; in response to receiving the startup command, said second virtual processor and its corresponding second thread of execution completing a startup. - View Dependent Claims (16, 17)
-
18. A computer-readable storage medium comprising computer-readable instructions for starting a second virtual processor in a virtual machine environment, said virtual machine environment comprising:
a guest operating system executing on said virtual machine emulated by a virtual machine monitor, said virtual machine comprising a plurality of virtual processors which are implemented as separate threads of execution, processor, said computer-readable instructions comprising instructions for; said guest operating system executing on a first virtual processor corresponding to a first thread of execution, and said guest operating system issuing a startup command to start the second virtual processor via said first virtual processor, the second virtual processor corresponding to a second thread of execution; said virtual machine monitor providing said second virtual processor and its corresponding second thread of execution with the highest priority for utilizing hardware resources, thereby preventing said first thread of execution corresponding to said guest operating system from continuing execution and thus preventing a timeout corresponding to said startup command; said virtual machine monitor forcing said first virtual processor and its corresponding first thread of execution to relinquish control of a set of all hardware resources and providing control to the set of all hardware resources to said second virtual processor and its corresponding second thread of execution; in response to receiving the startup command, said second virtual processor and its corresponding second thread of execution completing a startup; said virtual machine monitor providing said second virtual processor and its corresponding second thread of execution with a priority other than the highest priority for utilizing hardware resources; and said virtual machine monitor forcing said second virtual processor and its corresponding second thread of execution to relinquish control of said set of all hardware resources and providing control to said set of all hardware resources to said first virtual processor and its corresponding first thread of execution. - View Dependent Claims (19, 20, 21)
-
22. A hardware control device for starting a virtual machine environment emulated by a virtual machine monitor, said virtual machine emulating a multi-processor computing device, said virtual machine comprising a guest operating system executing on a first virtual processor corresponding to a first thread of execution, said first virtual processor corresponding to an emulation of one processor of the multi-processor computing device, said hardware control device comprising:
at least one computing device coupled to at least one memory, said at least one memory storing instructions that upon execution on the at least one computing device, at least cause; issuing a startup command to a second virtual processor instantiated emulated within the virtual machine and corresponding to a second thread of execution; providing said second virtual processor and its corresponding second thread of execution with the highest priority for utilizing hardware resources; forcing the first virtual processor and its corresponding first thread of execution to relinquish control of at least one hardware resource and providing control to the at least one hardware resource to the second virtual processor and its corresponding second thread of execution; said second virtual processor and its corresponding second thread of execution completing a startup in response to the startup command. - View Dependent Claims (23, 24)
-
25. A hardware control device for starting a second virtual processor in a virtual machine environment, said virtual machine environment comprising a guest operating system executing on said virtual machine emulated by a virtual machine monitor, said virtual machine comprising a plurality of virtual processors which are implemented as separate threads of execution, processor, said hardware control device comprising:
at least one computing device coupled to at least one memory, said at least one memory storing instructions that upon execution on the at least one computing device, at least cause; said guest operating system executing on a first virtual processor corresponding to a first thread of execution, and said guest operating system issuing a startup command by way of the subsystem to start the second virtual processor via said first virtual processor, the second virtual processor corresponding to a second thread of execution; said virtual machine monitor providing said second virtual processor and its corresponding second thread of execution with the highest priority for utilizing hardware resources, thereby preventing said first thread of execution corresponding to said guest operating system from continuing execution and thus preventing a timeout corresponding to said startup command; said virtual machine monitor forcing said first virtual processor and its corresponding first thread of execution to relinquish control of a set of hardware resources and providing control to the set of hardware resources to said second virtual processor and its corresponding second thread of execution; in response to receiving the startup command, said second virtual processor and its corresponding second thread of execution completing a startup; said virtual machine monitor providing said second virtual processor and its corresponding second thread of execution with a priority other than the highest priority for utilizing hardware resources; and said virtual machine monitor forcing said second virtual processor and its corresponding second thread of execution to relinquish control of said set of hardware resources and providing control to said set of hardware resources to said first virtual processor and its corresponding first thread of execution. - View Dependent Claims (26, 27, 28)
Specification