Linux CPU frequency scaling improvements for interactive/latency-sensitive workloads
Google found that Linux 'ondemand' cpufreq governor isn't suitable for the latency-senstive (e.g. UI) workloads, and impelemented its own 'interactive' governor. We have to investigate whether we should improve 'ondemand' governor, or modify 'interactive' governor so that it could be suitable for inclusion, or implement something completely different (as proposed by the community).
Blueprint information
- Status:
- Started
- Approver:
- None
- Priority:
- Undefined
- Drafter:
- None
- Direction:
- Needs approval
- Assignee:
- Anton Vorontsov
- Definition:
- Approved
- Series goal:
- None
- Implementation:
- Blocked
- Milestone target:
- backlog
- Started by
- Deepak Saxena
- Completed by
Related branches
Related bugs
Sprints
Whiteboard
Meta:
Headline: Linux CPU frequency scaling improvements for interactive/
Acceptance: 'Interactive' cpufreq governor merged into mainline kernels, or equivalent solution implemented and merged into mainline.
Roadmap id: KWG2011-
Moving this to blocked, since merging as-is was rejected, and this will require deep effort in the scheduler to enable equivalent functionality.
From Anton's Lunch meeting with Google devs:
"Colin (IIRC) proposed a great idea to investigate: it might be possible
to add a short deferrable timer to the ondemand governor (it won't
cause wakeups by itself but it'll be our "shortcut" from the idle loop
to the governor code). This deferrable timer will be only used to
ramp-up frequency. To decrease freq, we'll use normal timer (it will
run at pre-programmed period to slowly ramp-down the freq to the
minimal frequency, and once we reached the min., we'd turn it off)."
jstultz: Viresh on the power-management team is working on cpufreq-
Work Items
Work items for 12.02:
Implement generic 'scheduler idle notifiers' (per previous community requests): DONE
Rebase and send out a new 'cpufreq_
Work items for backlog:
Discuss the driver w/ the community: BLOCKED
Run cpufreq-bench for 'ondemand' and 'interactive' governors, get some reference numbers to compare with: INPROGRESS
Depending on the discussion results, plan any further steps: TODO
Dependency tree
* Blueprints in grey have been implemented.