Detecting Full-System Idle State In Adaptive-Tick Kernels
First Claim
1. In a computer system having plural CPUs, including a timekeeping CPU and one or more non-timekeeping CPUs, operatively coupled to one or more memory devices, said system running an adaptive tick kernel, a method for detecting full-system idle state in said adaptive-tick kernel, comprising detecting a non-timekeeping CPU idle state, initiating a hysteresis period, waiting for said hysteresis period to end, manipulating a data structure whose state indicates whether a scheduling clock tick may be disabled on all of said CPUs, and disabling said scheduling clock tick on all of said CPUs if said data structure is determined to be in an appropriate state.
7 Assignments
0 Petitions
Accused Products
Abstract
A technique for detecting full-system idle state in an adaptive-tick kernel includes detecting non-timekeeping CPU idle state, initiating a hysteresis period, waiting for the hysteresis period to end, manipulating a data structure whose state indicates whether a scheduling clock tick may be disabled on all CPUs, and disabling the scheduling clock tick if the data structure is in an appropriate state. In a first embodiment, non-timekeeping CPUs manipulate a global counter when entering an idle state, but add hysteresis to avoid thrashing the counter. Timekeeping is turned off based on the count maintained on the global counter. In a second embodiment, a Read-Copy Update (RCU) dynticks-idle subsystem running on a timekeeping CPU manipulates a global state variable whose states indicate whether all non-timekeeping CPUs are in an idle state, and if so, for how long. Timekeeping is turned off based on the state of the global state variable.
-
Citations
21 Claims
- 1. In a computer system having plural CPUs, including a timekeeping CPU and one or more non-timekeeping CPUs, operatively coupled to one or more memory devices, said system running an adaptive tick kernel, a method for detecting full-system idle state in said adaptive-tick kernel, comprising detecting a non-timekeeping CPU idle state, initiating a hysteresis period, waiting for said hysteresis period to end, manipulating a data structure whose state indicates whether a scheduling clock tick may be disabled on all of said CPUs, and disabling said scheduling clock tick on all of said CPUs if said data structure is determined to be in an appropriate state.
-
8. A system, comprising:
-
plural CPUs, including a timekeeping CPU and one or more non-timekeeping CPUs; one or more memory devices coupled to said CPUs, said memory devices including a computer readable storage medium tangibly embodying at least one program of instructions executable by said CPUs to implement an adaptive tick kernel, and operations for detecting full-system idle state in said adaptive-tick kernel, said operations comprising detecting a non-timekeeping CPU idle state, initiating a hysteresis period, waiting for said hysteresis period to end, manipulating a data structure whose state indicates whether a scheduling clock tick may be disabled on all of said CPUs, and disabling said scheduling clock tick on all of said CPUs if said data structure is determined to be in an appropriate state. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer program product, comprising:
-
one or more computer readable storage media; program instructions provided by said one or more computer readable storage media for programming a data processing platform to implement an adaptive tick kernel, and operations for detecting full-system idle state in said adaptive-tick kernel, said operations comprising detecting a non-timekeeping CPU idle state, initiating a hysteresis period, waiting for said hysteresis period to end, manipulating a data structure whose state indicates whether a scheduling clock tick may be disabled on all of said CPUs, and disabling said scheduling clock tick on all of said CPUs if said data structure is determined to be in an appropriate state. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification