This patch adds a sysctl schedule balance option to choose against: Wysockiģ siblings, 1 reply 33+ messages in thread 16:13 ` sched: idle: Provide the basis to integrate cpuidle Rafael J. 12:24 ` sched: idle: Store the idle state the cpu is Daniel Lezcano
12:24 ` sched: idle: Encapsulate the code to compile it out Daniel 12:24 ` Daniel Lezcano 12:24 sched: idle: Provide the basis to integrate cpuidle Daniel Lezcano * We can't use the cpuidle framework, let's use the default * Give the governor an opportunity to reflect on the entered_state = cpuidle_enter(drv, dev, trace_cpu_idle_rcuidle(next_state, dev->cpu)
* go to idle, just update no idle residency and get * The idle task must be scheduled, it is pointless to * Ask the governor to choose an idle state it thinks * to the default arch specific idle method * Check if the cpuidle framework is ready, otherwise fallback If it is -101,80 +182,10 static int cpuidle_idle_call(void) * Check if the idle task must be rescheduled. struct cpuidle_driver *drv = cpuidle_get_cpu_driver(dev) struct cpuidle_device *dev = _this_cpu_read(cpuidle_devices) * cpuidle_idle_call - the main idle -71,10 +155,7 void _weak arch_cpu_idle(void) +static int inline _cpuidle_idle_call(void) + * Give the governor an opportunity to reflect + trace_cpu_idle_rcuidle(PWR_EVENT_EXIT, dev->cpu) + entered_state = cpuidle_enter(drv, dev, next_state) + * block until an interrupt occurs and will + * Enter the idle state previously returned by
+ trace_cpu_idle_rcuidle(next_state, dev->cpu) + * from another cpu as a broadcast timer, this + * broadcast timer because our local timer + * Tell the time framework to switch to a + * go to idle, just update no idle residency and get + * The idle task must be scheduled, it is pointless to + * Ask the governor to choose an idle state it thinks + * to the default arch specific idle method + * Check if the cpuidle framework is ready, otherwise fallback + struct cpuidle_driver *drv = cpuidle_get_cpu_driver(dev) + struct cpuidle_device *dev = _this_cpu_read(cpuidle_devices) ` (2 subsequent siblings) 3 siblings, 1 reply 33+ messages in threadĮncapsulate the large portion of cpuidle_idle_call inside anotherįunction so when CONFIG_CPU_IDLE=n, the code will be compiled out.Īlso that is benefitial for the clarity of the code as it removes 12:24 ` sched: idle: Add sched balance option Daniel Lezcano 12:24 sched: idle: Provide the basis to integrate cpuidle Daniel 12:24 ` Daniel Lezcano * sched: idle: Encapsulate the code to compile it out Sched: idle: Store the idle state the cpu is Sched: idle: Encapsulate the code to compile it out The scheduler should take regarding the policy vs idle parameters. Posted in a separate patchset in order to keep focused on the right decisions Taking into account the cpuidle information from the scheduler will be This patchset does not modify the behavior of the scheduler. This patchset is based on top of v3.15-rc2. Prevent races when using the pointed object. The third one stores the idle state a cpu is and adds a rcu_barrier() to
The second one adds the sched balance option as requested by Ingo. This patchset provides three patches for the basis to integrate cpuidle with ` (3 more replies) 0 siblings, 4 replies 33+ messages in threadįrom: Daniel Lezcano 12:24 UTC ( / raw)Ĭc: linux-kernel, rjw, linux-pm, alex.shi, vincent.guittot, 12:24 ` sched: idle: Encapsulate the code to compile it out Daniel Lezcano
Sched: idle: Provide the basis to integrate cpuidle All of help / color / mirror / Atom feed * sched: idle: Provide the basis to integrate cpuidle 12:24 Daniel Lezcano