Method and apparatus for managing the execution of a broadcast instruction on a guest processor
First Claim
1. In an information handling system containing a plurality of processors, each of which is operable either as a host processor under the control of a host program executing on a host machine or as a guest processor under the control of a guest program executing on a guest machine, the guest machine being defined by the host program executing on the host machine and containing a plurality of such guest processors, a method for managing the execution on one of the guest processors of a broadcast instruction requiring a corresponding operation on other processors of the guest machine, the method comprising the steps of:
- defining for the guest machine a lock containing an indication of whether it is being held by a host lock holder from the host program and a count of the number of processors holding the lock as guest lock holders;
upon decoding a broadcast instruction executing on a processor operating as a guest processor, testing the lock to determine whether it is being held by a host lock holder;
if the lock is being held by a host lock holder, terminating execution of the instruction; and
if the lock is not being held by a host lock holder, updating the lock to indicate that it is being held by the guest processor as a shared lock holder and executing the instruction.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for managing the execution on guest processors of a broadcast instruction requiring a corresponding operation on other processors of a guest machine. Each of a plurality of processors on an information handling system is operable either as a host processor under the control of a host program executing on a host machine or as a guest processor under the control of a guest program executing on a guest machine. The guest machine is defined by the host program executing on the host machine and contains a plurality of such guest processors forming a guest multiprocessing configuration. A lock is defined for the guest machine containing an indication of whether it is being held by a host lock holder from the host program and a count of the number of processors holding the lock as guest lock holders. Upon decoding a broadcast instruction executing on a processor operating as a guest processor, the lock is tested to determine whether it is being held by a host lock holder. If the lock is being held by a host lock holder, an instruction interception is recognized and execution of the instruction is terminated. If the lock is not being held by a host lock holder, the lock is updated to indicate that it is being held by the guest processor as a shared lock holder, the instruction is executed, and then the lock is updated a second time to indicate that it is no longer being held by the guest processor as a shared lock holder.
70 Citations
24 Claims
-
1. In an information handling system containing a plurality of processors, each of which is operable either as a host processor under the control of a host program executing on a host machine or as a guest processor under the control of a guest program executing on a guest machine, the guest machine being defined by the host program executing on the host machine and containing a plurality of such guest processors, a method for managing the execution on one of the guest processors of a broadcast instruction requiring a corresponding operation on other processors of the guest machine, the method comprising the steps of:
-
defining for the guest machine a lock containing an indication of whether it is being held by a host lock holder from the host program and a count of the number of processors holding the lock as guest lock holders;
upon decoding a broadcast instruction executing on a processor operating as a guest processor, testing the lock to determine whether it is being held by a host lock holder;
if the lock is being held by a host lock holder, terminating execution of the instruction; and
if the lock is not being held by a host lock holder, updating the lock to indicate that it is being held by the guest processor as a shared lock holder and executing the instruction. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. In an information handling system containing a plurality of processors, each of which is operable either as a host processor under the control of a host program executing on a host machine or as a guest processor under the control of a guest program executing on a guest machine, the guest machine being defined by the host program executing on the host machine and containing a plurality of such guest processors, apparatus for managing the execution on one of the guest processors of a broadcast instruction requiring a corresponding operation on other processors of the guest machine, comprising:
-
means for defining for the guest machine a lock containing an indication of whether it is being held by a host lock holder from the host program and a count of the number of processors holding the lock as guest lock holders;
means for testing the lock to determine whether it is being held by a host lock holder upon decoding a broadcast instruction executing on a processor operating as a guest processor;
means for terminating execution of the instruction if the lock is being held by a host lock holder; and
means for updating the lock to indicate that it is being held by the guest processor as a shared lock holder and executing the instruction if the lock is not being held by a host lock holder. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps for managing the execution on a guest processor of a broadcast instruction requiring a corresponding operation on other processors of a guest machine in an information handling system containing a plurality of processors, each of which is operable either as a host processor under the control of a host program executing on a host machine or as a guest processor under the control of a guest program executing on a guest machine, the guest machine being defined by the host program executing on the host machine and containing a plurality of such guest processors, the method steps comprising:
-
defining for the guest machine a lock containing an indication of whether it is being held by a host lock holder from the host program and a count of the number of processors holding the lock as guest lock holders;
upon decoding a broadcast instruction executing on a processor operating as a guest processor, testing the lock to determine whether it is being held by a host lock holder;
if the lock is being held by a host lock holder, terminating execution of the instruction; and
if the lock is not being held by a host lock holder, updating the lock to indicate that it is being held by the guest processor as a shared lock holder and executing the instruction. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. In an information handling system, a method for managing a lock comprising the steps of:
-
defining a lock containing a first count of the number of requesters from a first group holding the lock on a shared basis and a second count of the number of requesters from a second group holding the lock on a basis that is shared among requesters of the second group but exclusive relative to requesters of the first group;
upon receiving a request for said lock from one of said groups, testing the lock to determine whether it is being held by any requesters from the other group;
if the lock is being held by any requesters from the other group, denying the request; and
if the lock is not being held by any requesters from the other group, granting the request and updating the lock to indicate that it is being held by the requester as a shared lock holder. - View Dependent Claims (20, 21, 22)
-
-
23. In an information handling system, apparatus for managing a lock, comprising:
-
means for defining a lock containing a first count of the number of requesters from a first group holding the lock on a shared basis and a second count of the number of requesters from a second group holding the lock on a basis that is shared among requesters of the second group but exclusive relative to requesters of the first group;
means responsive to receiving a request for said lock from one of said groups for testing the lock to determine whether it is being held by any requesters from the other group;
means for denying the request if the lock is being held by any requesters from the other group; and
means for granting the request and updating the lock to indicate that it is being held by the requester as a shared lock holder if the lock is not being held by any requesters from the other group.
-
-
24. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps for managing a lock, the method steps comprising:
-
defining a lock containing a first count of the number of requesters from a first group holding the lock on a shared basis and a second count of the number of requesters from a second group holding the lock on a basis that is shared among requesters of the second group but exclusive relative to requesters of the first group;
upon receiving a request for said lock from one of said groups, testing the lock to determine whether it is being held by any requesters from the other group;
if the lock is being held by any requesters from the other group, denying the request; and
if the lock is not being held by any requesters from the other group, granting the request and updating the lock to indicate that it is being held by the requester as a shared lock holder.
-
Specification