Preemptible-RCU CPU Hotplugging While Maintaining Real-Time Response
1 Assignment
0 Petitions
Accused Products
Abstract
A grace period detection technique for a preemptible read-copy update (RCU) implementation that uses a combining tree for quiescent state tracking. When a leaf level bitmask indicating online/offline CPUs is fully cleared due to all of its assigned CPUs going offline as a result of hotplugging operations, the bitmask state is not immediately propagated to the root level of the combining tree as in prior art RCU implementations. Instead, propagation is deferred until all tasks are removed from an associated leaf level task list tracking tasks that were preempted inside an RCU read-side critical section. Deferring bitmask propagation obviates the need to migrate the task list to the combining tree root level in order to prevent premature grace period termination. The task list can remain at the leaf level. In this way, CPU hotplugging is accommodated while avoiding excessive degradation of real-time latency stemming from the now-eliminated task list migration.
-
Citations
20 Claims
-
1-7. -7. (canceled)
-
8. A system, comprising:
-
a plurality of CPUs; a memory coupled to said CPUs, said memory including a computer readable storage medium tangibly embodying at least one program of instructions executable by said CPUs to perform hierarchical read-copy update (RCU) grace period detection operations that accommodate CPU-hotplugging while avoiding degradation of real-time latency due to task list migration, said operations comprising; providing a combining tree of two or more levels to track quiescent states, said levels including a leaf level and a root level; determining whether a condition warrants adjusting hierarchical RCU grace period detection to account for CPUs that have gone offline due to hotplugging operations; said condition being met if (1) a leaf level bitmask of said combining tree is fully cleared to indicate an offline state in which all of its assigned CPUs are offline, and (2) there are no tasks on a task list associated with said fully cleared bitmask; if said condition is met, then propagating said offline state of said leaf level bitmask up said combining tree to a root level bitmask to thereby establish an adjusted grace period detection state in which said fully cleared bitmask'"'"'s assigned CPUs are ignored for purposes of grace period detection; if said condition is partially met due to said leaf level bitmask being fully cleared to indicate an offline state in which all of its assigned CPUs are offline, but there are tasks remaining on said task list associated with said fully cleared bitmask, then (3) refraining from propagating said offline state up said combining tree to said root level bitmask and (4) maintaining said associated task list at said leaf level without migration to said root level, thereby ensuring that said tasks remaining on said task list will continue to have effect for purposes of grace period detection without having to migrate said task list; and unless said condition is fully met, continuing existing grace period detection without propagating said offline state. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
15. A computer program product, comprising:
-
one or more computer readable data storage media; program instructions stored on said one or more computer readable data storage media for programming a data processing platform having a plurality of CPUs to perform hierarchical read-copy update (RCU) grace period detection operations that accommodate CPU-hotplugging while avoiding degradation of real-time latency due to task list migration, said operations comprising; providing a combining tree of two or more levels to track quiescent states, said levels including a leaf level and a root level; determining whether a condition warrants adjusting hierarchical RCU grace period detection to account for CPUs that have gone offline due to hotplugging operations; said condition being met if (1) a leaf level bitmask of said combining tree is fully cleared to indicate an offline state in which all of its assigned CPUs are offline, and (2) there are no tasks on a task list associated with said fully cleared bitmask; if said condition is met, then propagating said offline state of said leaf level bitmask up said combining tree to a root level bitmask to thereby establish an adjusted grace period detection state in which said fully cleared bitmask'"'"'s assigned CPUs are ignored for purposes of grace period detection; if said condition is partially met due to said leaf level bitmask being fully cleared to indicate an offline state in which all of its assigned CPUs are offline, but there are tasks remaining on said task list associated with said fully cleared bitmask, then (3) refraining from propagating said offline state up said combining tree to said root level bitmask and (4) maintaining said associated task list at said leaf level without migration to said root level, thereby ensuring that said tasks remaining on said task list will continue to have effect for purposes of grace period detection without having to migrate said task list; and unless said condition is fully met, continuing existing grace period detection without propagating said offline state. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification