Apparatus and method for load balancing of fixed priority threads in a multiple run queue environment
AssigneeInternational Business Machines Corporation
InventorLarry Bert Brenner
Life of this patent
Estimating the term…
Abstract
Apparatus and methods for load balancing fixed priority threads in a multiprocessor system are provided. The apparatus and methods of the present invention identify unbound fixed priority threads at the top of local run queues. A best fixed priority thread is then identified and its priority checked against the priorities of threads executing on processors of the node. A set of executing threads that may be displaced by the best fixed priority thread is identified. The lowest priority executing thread from the set is then identified and the best fixed priority thread is moved to displace this lowest priority executing thread.
Claims30
A method of managing fixed priority threads in a multiple processor system having a plurality of processors, the multiple processor system having a plurality of local run queues, each of the plurality of processors being associated with at least one of the plurality of local run queues, the method comprising:
- dispatching a plurality of threads to ones of the plurality of local run queues, said plurality of threads including a plurality of fixed priority threads;
- and
- performing fixed priority load balancing on the plurality of local run queues, the fixed priority load balancing including the stens of
- identifying a first local run queue from the plurality of local run queues, the first local run queue having a fixed priority thread at the top of the first local run queue,
- identifying an executing thread on one of the plurality of processors, the executing thread having a lower priority than the fixed priority thread, and
- displacing the executing thread with the fixed priority thread.
A computer program product having instruction in a computer readable medium for managing fixed priority threads in a multiple processor system having a plurality of processors, the multiple processor system having a plurality of local run queues, each of the plurality of processors being associated with at least one of the plurality of local run queues, the computer program product comprising:
- instructions for dispatching a plurality of threads to ones of the plurality of local run queues, said plurality fo threads including a plurality of fixed priority threads;
- and
- instructions for performing fixed priority load balancing on the plurality of local run queues, wherein the instructions for performing fixed priority load balancing include
- instructions for identifying a first local run queue from the plurality of local run queues, the first local run queue having a fixed priority thread at the top of the first local run queues,
- instructions for identifying an executing thread on one of the plurality of processors, the executing thread having a lower priority than the fixed priority threads, and
- instructions for displacing the executing thread with the fixed priority thread.
An apparatus for managing fixed priority threads in a multiple processor system having a plurality of processors, the multiple processor system having a plurality of local run queues, each of the plurality of processors being associated with at least one of the plurality of local run queues, the apparatus comprising:
- means for dispatching threads to ones of the plurality of local run queues, said plurality of threads including a plurality of fixed priority threads;
- and
- means for performing fixed priority load balancing on the plurality of local run queues, the means for performing fixed priority load balancing includes
- means for identifying a first local run queue from the plurality of local run queues, the first local run queue having a fixed priority thread at the top of the first local run queue,
- means for identifying an executing thread on one of the plurality of processors, the executing thread having a lower priority than the fixed priority thread, and
- means for displacing the executing thread with the fixed priority thread.
Dependencies are inferred from the claim text.