Systems and methods for initializing multiple virtual processors within a single virtual machine
First Claim
1. A method for starting a virtual processor in a virtual machine environment, said virtual machine environment comprising a guest operating system executing on a first virtual processor corresponding to a first thread of execution, said method comprising:
- issuing a startup command to a 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;
said second virtual processor and its corresponding second thread of execution completing a 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.
114 Citations
32 Claims
-
1. A method for starting a virtual processor in a virtual machine environment, said virtual machine environment comprising a guest operating system executing on a first virtual processor corresponding to a first thread of execution, said method comprising:
-
issuing a startup command to a 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;
said second virtual processor and its corresponding second thread of execution completing a startup. - View Dependent Claims (2, 3, 4)
-
-
5. A method for starting a virtual processor in a virtual machine environment, said virtual machine environment comprising a guest operating system executing on a 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 guest operating system comprising a subsystem (e.g., BIOS) for issuing a command to start a processor, said method comprising:
-
said guest operating system, executing on a first virtual processor corresponding to a first thread of execution, issuing a startup command via said first virtual processor to a 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 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 same to said second virtual processor and its corresponding second thread of execution;
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 same to said first virtual processor and its corresponding first thread of execution. - View Dependent Claims (6, 7, 8)
-
-
9. A system for starting a virtual processor in a virtual machine environment, said virtual machine environment comprising a guest operating system executing on a first virtual processor corresponding to a first thread of execution, said system comprising at least one subsystem for:
-
issuing a startup command to a 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;
said second virtual processor and its corresponding second thread of execution completing a startup. - View Dependent Claims (10, 11, 12)
-
-
13. A system for starting a virtual processor in a virtual machine environment, said virtual machine environment comprising a guest operating system executing on a 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 guest operating system comprising a subsystem (e.g., BIOS) for issuing a command to start a processor, said system comprising at least one subsystem for:
-
said guest operating system, executing on a first virtual processor corresponding to a first thread of execution, issuing a startup command via said first virtual processor to a 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 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 same to said second virtual processor and its corresponding second thread of execution;
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 same to said first virtual processor and its corresponding first thread of execution. - View Dependent Claims (14, 15, 16)
-
-
17. A computer-readable medium comprising computer-readable instructions for starting a virtual processor in a virtual machine environment, said virtual machine environment comprising a guest operating system executing on a first virtual processor corresponding to a first thread of execution, said computer-readable instructions comprising instructions for:
-
issuing a startup command to a 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;
said second virtual processor and its corresponding second thread of execution completing a startup. - View Dependent Claims (18, 19, 20)
-
-
21. A computer-readable medium comprising computer-readable instructions for starting a virtual processor in a virtual machine environment, said virtual machine environment comprising a guest operating system executing on a 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 guest operating system comprising a subsystem (e.g., BIOS) for issuing a command to start a 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, issuing a startup command via said first virtual processor to a 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 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 same to said second virtual processor and its corresponding second thread of execution;
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 same to said first virtual processor and its corresponding first thread of execution. - View Dependent Claims (22, 23, 24)
-
-
25. A hardware control device for starting a virtual processor in a virtual machine environment, said virtual machine environment comprising a guest operating system executing on a first virtual processor corresponding to a first thread of execution, said hardware control device comprising means for:
-
issuing a startup command to a 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;
said second virtual processor and its corresponding second thread of execution completing a startup. - View Dependent Claims (26, 27, 28)
-
-
29. A hardware control device for starting a virtual processor in a virtual machine environment, said virtual machine environment comprising a guest operating system executing on a 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 guest operating system comprising a subsystem (e.g., BIOS) for issuing a command to start a processor, said hardware control device comprising means for:
-
said guest operating system, executing on a first virtual processor corresponding to a first thread of execution, issuing a startup command via said first virtual processor to a 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 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 same to said second virtual processor and its corresponding second thread of execution;
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 same to said first virtual processor and its corresponding first thread of execution. - View Dependent Claims (30, 31, 32)
-
Specification