Techniques for providing improved affinity scheduling in a multiprocessor computer system
First Claim
1. A method of controlling a thread on a computerized system having multiple processors, the method comprising:
- accessing state information of a blocked thread;
maintaining the state information of the blocked thread when the state information indicates that less than a predetermined amount of time has elapsed since the blocked thread ran on the computerized system;
setting the state information of the blocked thread to identify affinity for a particular processor of the multiple processors when the state information indicates that at least the predetermined amount of time has elapsed since the blocked thread ran on the computerized system, wherein the particular processor of the multiple processors is selected based on state information of another thread run on the particular processor, the another thread waking the blocked thread and having shared data with the blocked thread; and
while setting the state information of the blocked thread to identify affinity for the particular processor of the multiple processors, setting the state information of the blocked thread to indicate that less than the predetermined amount of time has elapsed since the blocked thread ran on the computerized system.
2 Assignments
0 Petitions
Accused Products
Abstract
Techniques for controlling a thread on a computerized system having multiple processors involve accessing state information of a blocked thread, and maintaining the state information of the blocked thread at current values when the state information indicates that less than a predetermined amount of time has elapsed since the blocked thread ran on the computerized system. Such techniques further involve setting the state information of the blocked thread to identify affinity for a particular processor of the multiple processors when the state information indicates that at least the predetermined amount of time has elapsed since the blocked thread ran on the computerized system. Such operation enables the system to place a cold blocked thread which shares data with another thread on the same processor of that other thread so that, when the blocked thread awakens and runs, that thread is closer to the shared data.
-
Citations
17 Claims
-
1. A method of controlling a thread on a computerized system having multiple processors, the method comprising:
-
accessing state information of a blocked thread; maintaining the state information of the blocked thread when the state information indicates that less than a predetermined amount of time has elapsed since the blocked thread ran on the computerized system; setting the state information of the blocked thread to identify affinity for a particular processor of the multiple processors when the state information indicates that at least the predetermined amount of time has elapsed since the blocked thread ran on the computerized system, wherein the particular processor of the multiple processors is selected based on state information of another thread run on the particular processor, the another thread waking the blocked thread and having shared data with the blocked thread; and while setting the state information of the blocked thread to identify affinity for the particular processor of the multiple processors, setting the state information of the blocked thread to indicate that less than the predetermined amount of time has elapsed since the blocked thread ran on the computerized system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A non-transitory computer readable medium having computer executable instructions stored thereon for controlling a thread on a computer system having multiple processors, the instructions being configured to cause the computer system to:
-
access state information of a blocked thread; maintain the state information of the blocked thread when the state information indicates that less than a predetermined amount of time has elapsed since the blocked thread ran on the computerized system; set the state information of the blocked thread to identify affinity for a particular processor of the multiple processors when the state information indicates that at least the predetermined amount of time has elapsed since the blocked thread ran on the computerized system, wherein the particular processor of the multiple processors is selected based on state information of another thread run on the particular processor, the another thread waking the blocked thread and having shared data with the blocked thread; and while setting the state information of the blocked thread to identify affinity for the particular processor of the multiple processors, set the state information of the blocked thread to indicate that less than the predetermined amount of time has elapsed since the blocked thread ran on the computerized system. - View Dependent Claims (11, 12, 13)
-
-
14. A computerized system, comprising:
multiple processors configured to run threads, the multiple processors being configured to; access state information of a blocked thread; maintain the state information of the blocked thread when the state information indicates that less than a predetermined amount of time has elapsed since the blocked thread ran on the computerized system; set the state information of the blocked thread to identify affinity for a particular processor of the multiple processors when the state information indicates that at least the predetermined amount of time has elapsed since the blocked thread ran on the computerized system, wherein the particular processor of the multiple processors is selected based on state information of another thread run on the particular processor, the another thread waking the blocked thread and having shared data with the blocked thread; and while setting the state information of the blocked thread to identify affinity for the particular processor of the multiple processors, set the state information of the blocked thread to indicate that less than the predetermined amount of time has elapsed since the blocked thread ran on the computerized system. - View Dependent Claims (15, 16, 17)
Specification