Multiprocessing systems employing hierarchical back-off locks
First Claim
1. A method for performing spin-lock operations in a computer system comprising:
- a first thread determining a node id of an owner of a software lock;
the first thread spinning on the software lock at a first initial rate in response to determining the node id identifies the same node in which the first thread is executing; and
the first thread spinning on the software lock at a slower initial rate in response to determining the node id identifies a different node than the node in which the first thread is executing.
2 Assignments
0 Petitions
Accused Products
Abstract
A multiprocessing system including multiple processing nodes employs various implementations of hierarchical back-off locks. A thread attempting to obtain a software lock may determine whether the lock is currently owned by a different node than the node in which the thread is executing. If the lock is not owned by a different node, the thread executes code to perform a fast spin operation. On the other hand, if the lock is owned by a different node, the thread executes code to perform a slow spin operation. In this manner, node locality may result wherein a thread that is executing within the same node in which a lock has already been obtained will be more likely to subsequently acquire the lock when it is freed in relation to other contending threads executing in other nodes.
10 Citations
38 Claims
-
1. A method for performing spin-lock operations in a computer system comprising:
-
a first thread determining a node id of an owner of a software lock; the first thread spinning on the software lock at a first initial rate in response to determining the node id identifies the same node in which the first thread is executing; and the first thread spinning on the software lock at a slower initial rate in response to determining the node id identifies a different node than the node in which the first thread is executing. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A multiprocessing computer system comprising:
-
a plurality of nodes including a plurality of processors; and a storage medium including instructions executable by one or more of the plurality of processors to implement a method of performing spin-lock operations in a computer system comprising; a first thread determining a node id of an owner of a software lock; the first thread spinning on the software lock at a first initial rate in response to determining the node id identifies the same node in which the first thread is executing; and the first thread spinning on the software lock at a slower initial rate in response to determining the node id identifies a different node than the node in which the first thread is executing. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. A computer readable medium including program instructions executable to implement a method of performing spin-lock operations in a computer system comprising:
-
a first thread determining a node id of an owner of a software lock; the first thread spinning on the software lock at a first initial rate in response to determining the node id identifies the same node in which the first thread is executing; and the first thread spinning on the software lock at a slower initial rate in response to determining the node id identifies a different node than the node in which the first thread is executing. - View Dependent Claims (28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38)
-
Specification