Lock Spin Wait Operation for Multi-Threaded Applications in a Multi-Core Computing Environment
First Claim
1. A computer-implemented method for managing multi-threaded applications in a multi-core computing system, comprising:
- assigning a first processor core to manage spin waits in a multi-core system;
detecting a failure of a thread to acquire a lock on a second processor core, the failure to acquire a lock indicating that the thread is a first spin-waiting thread;
transferring the first spin-waiting thread to the first processor core to acquire a lock; and
allocating a lock response time for the first spin-waiting thread to acquire a lock from the first processor.
1 Assignment
0 Petitions
Accused Products
Abstract
A method, system and computer-usable medium are disclosed for a lock-spin-wait operation for managing multi-threaded applications in a multi-core computing environment. A target processor core, referred to as a “spin-wait core” (SAC), is assigned (or reserved) for primarily running spin-waiting threads. Threads operating in the multi-core computing environment that are identified as spin-waiting are then moved to a run queue associated with the SAC to acquire a lock. The spin-waiting threads are then allocated a lock response time that is less than the default lock response time of the operating system (OS) associated with the SAC. If a spin-waiting fails to acquire a lock within the allocated lock response time, the SAC is relinquished, ceding its availability for other spin-waiting threads in the run queue to acquire a lock. Once a spin-waiting thread acquires a lock, it is migrated to its original, or an available, processor core.
-
Citations
20 Claims
-
1. A computer-implemented method for managing multi-threaded applications in a multi-core computing system, comprising:
-
assigning a first processor core to manage spin waits in a multi-core system; detecting a failure of a thread to acquire a lock on a second processor core, the failure to acquire a lock indicating that the thread is a first spin-waiting thread; transferring the first spin-waiting thread to the first processor core to acquire a lock; and allocating a lock response time for the first spin-waiting thread to acquire a lock from the first processor. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system comprising:
-
a processor; a data bus coupled to the processor; and a computer-usable medium embodying computer program code, the computer-usable medium being coupled to the data bus, the computer program code used for managing multi-threaded applications in a multi-core computing system and comprising instructions executable by the processor and configured for; assigning a first processor core to manage spin waits in a multi-core system; detecting a failure of a thread to acquire a lock on a second processor core, the failure to acquire a lock indicating that the thread is a first spin-waiting thread; transferring the first spin-waiting thread to the first processor core to acquire a lock; and allocating a lock response time for the first spin-waiting thread to acquire a lock from the first processor. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A non-transitory, computer-readable storage medium embodying computer program code, the computer program code comprising computer executable instructions configured for:
-
assigning a first processor core to manage spin waits in a multi-core system; detecting a failure of a thread to acquire a lock on a second processor core, the failure to acquire a lock indicating that the thread is a first spin-waiting thread; transferring the first spin-waiting thread to the first processor core to acquire a lock; and allocating a lock response time for the first spin-waiting thread to acquire a lock from the first processor. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
Specification