Patent ID: 7458076
Filing Date: 2008-11-25
Classification: G06F

Abstract:
1. A method in a simultaneous multithreading data processing system for modifying the processing of multiple software threads that acquire a software lock, said method comprising: concurrently executing multiple software threads on a processor included in said data processing system; assigning a hardware priority to each one of said multiple software threads; identifying the software lock as a contentious lock by a first locking function; boosting, by the first locking function, a hardware priority of each of said multiple software threads that successfully acquires said contentious lock; identifying a command that was executed by one of the multiple software threads to branch to a second locking function; tracking, by said second locking function, a number of times said one of the multiple software threads successfully acquires a lock on said first attempt to acquire said lock; comparing, by said second locking function, said number of times to a non-contention threshold; in response to said number of times exceeding said non-contention threshold, identifying said lock as a non-contentious lock; in response to identifying said lock as the non-contentious lock, storing an address of said first locking function in said command; and in response to a next execution of said command, branching to said first locking function instead of branching to said second locking function and continue executing the multiple software threads.