Method, apparatus, and computer program product for dynamically tuning a data processing system by identifying and boosting holders of contentious locks
First Claim
1. A method in a simultaneous multithreading data processing system for modifying the processing of software threads that acquire a contentious software lock, said method comprising:
- concurrently executing multiple different threads on a processor included in said system;
assigning a hardware priority to each one of said multiple threads;
identifying a contentious lock; and
boosting a hardware priority of each one of said multiple software threads that successfully acquires said contentious lock.
1 Assignment
0 Petitions
Accused Products
Abstract
A method, apparatus, and computer program product are disclosed for a simultaneous multithreading (SMT) data processing system for modifying the processing of software threads that acquire a contentious software lock. The system includes a processor that is capable of concurrently executing multiple different threads on the processor. The processor is also capable of utilizing hardware thread priorities assigned to each thread the processor is processing by granting a greater, disparate amount of resources to the highest priority thread. A hardware priority is assigned to each one of the SMT threads. A contentious lock is identified. Ones of the multiple threads are identified that attempt to acquire the contentious lock. These threads are dynamically redirected to special code for handling contentious locks. The hardware priority of a thread acquiring a contentious lock is then boosted. According to the preferred embodiment, the present invention redirects callers of a locking function to a “hot” locking function when the lock they are acquiring has been classified as “hot”, and vice versa.
26 Citations
20 Claims
-
1. A method in a simultaneous multithreading data processing system for modifying the processing of software threads that acquire a contentious software lock, said method comprising:
-
concurrently executing multiple different threads on a processor included in said system;
assigning a hardware priority to each one of said multiple threads;
identifying a contentious lock; and
boosting a hardware priority of each one of said multiple software threads that successfully acquires said contentious lock. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. An apparatus in a simultaneous multithreading data processing system for modifying the processing of software threads that acquire a contentious software lock, said apparatus comprising:
-
a processor concurrently executing multiple different threads;
a hardware priority assigned to each one of said multiple threads;
a first locking function for identifying a contentious lock; and
said first locking function boosting a hardware priority of each one of said multiple software threads that successfully acquires said contentious lock. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A computer program product in a simultaneous multithreading data processing system for modifying the processing of software threads that acquire a contentious software lock, said product comprising:
-
instructions for concurrently executing multiple different threads on a processor included in said system;
instructions for assigning a hardware priority to each one of said multiple threads;
instructions for identifying a contentious lock; and
instructions for boosting a hardware priority of each one of said multiple software threads that successfully acquires said contentious lock. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification