×

Migrating sleeping and waking threads between wake-and-go mechanisms in a multiple processor data processing system

  • US 8,230,201 B2
  • Filed: 04/16/2009
  • Issued: 07/24/2012
  • Est. Priority Date: 04/16/2009
  • Status: Active Grant
First Claim
Patent Images

1. A method, in a data processing system, for performing a wake-and-go operation, the method comprising:

  • responsive to a first wake-and-go mechanism associated with a first processing unit within a plurality of processing units detecting a thread running on the first processing unit that is waiting for an event that modifies a data value associated with a target address, placing the thread in a sleep state;

    creating a wake-and-go instance for the thread comprising the target address and a thread identifier associated with the thread;

    assigning the wake-and-go instance to a second processing unit within the plurality of processing units;

    storing, by a second wake-and-go mechanism associated with the second processing unit, the wake-and-go instance in a wake-and-go storage array associated with the second processing unit; and

    responsive to the second wake-and-go mechanism detecting the event that modifies the data value associated with the target address, placing the thread in a non-sleep state,wherein placing the thread in a non-sleep state comprises;

    identifying a third processing unit within the plurality of processing units that has a lowest processor utilization within the plurality of processing units or a lowest priority thread running within the plurality of processing units; and

    placing the thread in a run queue of the third processing unit.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×