Multiprocessing systems employing hierarchical spin locks
First Claim
1. A method for controlling a software lock to a shared memory resource that is acquirable by processors in a plurality of nodes of a multiprocessing system, the method comprising:
- a first processor of a first node of the plurality of nodes acquiring the software lock;
the first processor selectively releasing the software lock in a local free state by writing to a local software lock that allows another processor within the first node to acquire the software lock but that prevents processors in a remote node of the plurality of nodes from obtaining the software lock in response to a fairness value being in a false state and in response to an indication that the another processor in the same node attempted to acquire the software lock;
the first processor releasing the software lock in a free state that allows all processors within any of the plurality of nodes to attempt to acquire the software lock in response to the fairness value being in a false state and in response to an indication that no other processor in the same node attempted to acquire the software lock; and
the first processor also releasing the software lock in the free state in response to the fairness value being in a true state regardless of an indication that the another processor in the same node attempted to acquire the software lock.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for controlling a software lock acquirable by processors in a plurality of nodes of a multiprocessing system is disclosed. The method comprises a first processor of a first node of the plurality of nodes acquiring the lock, and the first processor selectively releasing the lock in a first state that allows other processors within the first node to acquire the lock but that prevents processors in a remote node of the plurality of nodes from obtaining the lock. In another embodiment, a method comprises a first processor of a first node attempting to acquire the lock, the first processor determining whether another processor within the same node is remotely spinning on the lock, and the first processor remotely spinning on the lock in response to determining that another processor in the same node is not remotely spinning on the software lock.
31 Citations
18 Claims
-
1. A method for controlling a software lock to a shared memory resource that is acquirable by processors in a plurality of nodes of a multiprocessing system, the method comprising:
-
a first processor of a first node of the plurality of nodes acquiring the software lock; the first processor selectively releasing the software lock in a local free state by writing to a local software lock that allows another processor within the first node to acquire the software lock but that prevents processors in a remote node of the plurality of nodes from obtaining the software lock in response to a fairness value being in a false state and in response to an indication that the another processor in the same node attempted to acquire the software lock; the first processor releasing the software lock in a free state that allows all processors within any of the plurality of nodes to attempt to acquire the software lock in response to the fairness value being in a false state and in response to an indication that no other processor in the same node attempted to acquire the software lock; and the first processor also releasing the software lock in the free state in response to the fairness value being in a true state regardless of an indication that the another processor in the same node attempted to acquire the software lock. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A multiprocessing computer system comprising:
-
a plurality of nodes including a plurality of processors; wherein a first processor of a first node of the plurality of nodes is configured to acquire a software lock to a shared memory resource; wherein the first processor is configured to selectively release the software lock in a local free state by writing to a local lock that allows another processor within the first node to acquire the software lock but that prevents processors in a remote node of the plurality of nodes from obtaining the software lock in response to a the fairness value being in a false state and in response to an indication that the another processor in the same node attempted to acquire the software lock; wherein the first processor is further configured to release the software lock in a free state that allows all processors within any of the plurality of nodes to attempt to acquire the software lock in response to the fairness value being in a false state and in response to an indication that no other processor in the same node attempted to acquire the software lock; and wherein the first processor is further configured to release the software lock in the free state in response to the fairness value being in a true state regardless of an indication that any other processor in the same node attempted to acquire the software lock. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A computer readable storage including program instructions executable to implement a method for controlling a software lock to a shared memory resource, the software lock being acquirable by processors in a plurality of nodes of a multiprocessing system, wherein the method comprises:
-
a first processor of a first node of the plurality of nodes acquiring the software lock; the first processor selectively releasing the software lock in a local free state that allows another processor within the first node to acquire the software lock but that prevents processors in a remote node of the plurality of nodes from obtaining the software lock in response to a fairness value being in a false state and in response to an indication that the another processor in the same node attempted to acquire the software lock; the first processor releasing the software lock in a free state that allows all processors within in any of the plurality of nodes to attempt to acquire the software lock in response to the fairness value being in a false state and in response to an indication that no other processor in the same node attempted to acquire the software lock; and the first processor releasing the software lock in the free state in response to the fairness value being in a true state regardless of an indication that any other processor in the same node attempted to acquire the software lock. - View Dependent Claims (15, 16, 17, 18)
-
Specification