Central Repository for Wake-and-Go Mechanism
First Claim
1. A method, in a data processing system, for performing a wake-and-go operation, the method comprising:
- detecting, by a wake-and-go engine within a multiple processor system, a thread that is waiting for an event associated with a target address;
populating, by the wake-and-go engine, a central repository wake-and-go storage array with the target address;
responsive to detecting that the thread is waiting for the event, placing the thread in a sleep state;
responsive to an event that modifies a data value associated with the target address, determining whether to wake the thread; and
responsive to a determination to wake the thread, placing the thread in a non-sleep state.
1 Assignment
0 Petitions
Accused Products
Abstract
A wake-and-go mechanism is provided with a central repository wake-and-go array for a multiple processor data processing system. The wake-and-go mechanism recognizes a programming idiom that indicates that a thread running on a processor within the multiple processor data processing system is waiting for an event. The wake-and-go mechanism updates a central repository wake-and-go array with a target address associated with the event. Each entry in the central repository wake-and-go array may include a thread identification (ID), a central processing unit (CPU) ID, the target address, the expected data, a comparison type, a lock bit, a priority, and a thread state pointer, which is the address at which the thread state information is stored.
-
Citations
20 Claims
-
1. A method, in a data processing system, for performing a wake-and-go operation, the method comprising:
-
detecting, by a wake-and-go engine within a multiple processor system, a thread that is waiting for an event associated with a target address; populating, by the wake-and-go engine, a central repository wake-and-go storage array with the target address; responsive to detecting that the thread is waiting for the event, placing the thread in a sleep state; responsive to an event that modifies a data value associated with the target address, determining whether to wake the thread; and responsive to a determination to wake the thread, placing the thread in a non-sleep state. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A data processing system, comprising:
-
a plurality of processors; a wake-and-go mechanism; and a central repository wake-and-go array, wherein the wake-and-go mechanism is configured to; detect a thread running on one of the plurality of processors that is waiting for an event associated with a target address; populate the central repository wake-and-go storage array with the target address; responsive to detecting that the thread is waiting for the event, place the thread in a sleep state; responsive to an event that modifies a data value associated with the target address, determine whether to wake the thread; and responsive to a determination to wake the thread, place the thread in a non-sleep state. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer program product comprising a computer useable medium having a computer readable program, wherein the computer readable program, when executed on a computing device, causes the computing device to:
-
detect a thread running on one of a plurality of processors that is waiting for an event associated with a target address; populate a central repository wake-and-go storage array with the target address; responsive to detecting that the thread is waiting for the event, place the thread in a sleep state; responsive to an event that modifies a data value associated with the target address, determine whether to wake the thread; and responsive to a determination to wake the thread, place the thread in a non-sleep state. - View Dependent Claims (18, 19, 20)
-
Specification