SELECTIVE DESCHEDULING OF IDLING GUESTS RUNNING ON A HOST COMPUTER SYSTEM
First Claim
Patent Images
1. A method of scheduling virtual machines running on at least one processor, comprising:
- receiving instructions of a virtual machine for binary translation at a binary translation layer, the binary translation layer generating an outgoing stream of instructions for execution on the at least one processor;
detecting instructions forming an idling loop in the received instructions; and
inserting instructions in the outgoing stream of instructions for descheduling the virtual machine based upon detection of the instructions forming the idling loop.
1 Assignment
0 Petitions
Accused Products
Abstract
Guests, such as virtual machines, that are running on a host hardware platform are selectively descheduled when an idling condition is detected. An example of the idling condition is that the guest has been executing instructions in an idle loop for more than a threshold period. Guest instructions may be evaluated for the idling condition in conjunction with binary translation.
-
Citations
32 Claims
-
1. A method of scheduling virtual machines running on at least one processor, comprising:
-
receiving instructions of a virtual machine for binary translation at a binary translation layer, the binary translation layer generating an outgoing stream of instructions for execution on the at least one processor; detecting instructions forming an idling loop in the received instructions; and inserting instructions in the outgoing stream of instructions for descheduling the virtual machine based upon detection of the instructions forming the idling loop. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method of scheduling virtual machines running on at least one processor, comprising:
-
converting at least some instructions issued by a virtual machine using binary translation into respective translated instruction streams for execution on said at least one processor; detecting instructions forming an idling loop in the virtual machine based on said at least some instructions; determining a threshold period based on a workload of said at least one processor; and emitting a descheduling code block as the translated instruction stream for at least one of said at least some instructions when the instructions forming the idling loop are detected, wherein the descheduling code block which when executed by said at least one processor performs operations of, measuring how long the idling loop has been executed, and descheduling the virtual machine if the instructions forming the idling loop are detected after the threshold period. - View Dependent Claims (17, 18, 19)
-
-
20. A computer system comprising:
-
a host hardware platform, which includes at least one hardware processor; at least one virtual machine running on the host platform by issuing instructions for execution on said at least one hardware processor, the virtual machine including at least one virtual processor and a guest operating system; a system software layer mediating access by the virtual machine for hardware resources, including said at least one hardware processor; a software interface layer operable to observe the instructions issued by said at least one virtual machine to be executed on said at least one hardware processor; a binary translation sub-system within the software interface layer converting at least some of the instructions issued by said at least one virtual machine using binary translation into respective translated instruction streams for execution on said at least one hardware processor; a detection software module comprising computer-executable code for detecting instructions forming an idling loop within the issued instructions by the virtual machine; and a scheduling software module within the system software layer comprising computer-executable code for descheduling the virtual machine; in which; the detection software module is incorporated into the binary translator and is further provided for emitting a descheduling code block as the translated instruction stream for at least one of the instructions issued by said at least one virtual machine, wherein the descheduling code block comprises computer-executable code for measuring how long the idling loop has been executed, and indicating descheduling to the scheduling software module if the execution time of the idling loop is longer than a threshold period. - View Dependent Claims (21)
-
-
22. A computer-readable storage medium containing a set of instructions that causes a computer system to perform a method of scheduling virtual machines running on at least one processor, said method comprising:
-
receiving instructions of a virtual machine for binary translation at a binary translation layer, the binary translation layer generating an outgoing stream of instructions for execution on the at least one processor; detecting instructions forming an idling loop in the received instructions; and inserting instructions in the outgoing stream of instructions for descheduling the virtual machine at the instructions forming the idling loop. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
Specification