SCHED_MC Full Idle support for Android

Registered by Tony Mansson on 2011-10-12

Session jointly led remotely by Vincent Guittot and locally arbitrated by Tony Mansson.

In this session we will talk about how Android can exploit the benefits of full Idle Support.

Blueprint information

Status:
Complete
Approver:
Zach Pfeffer
Priority:
Essential
Drafter:
Tony Mansson
Direction:
Approved
Assignee:
Tony Mansson
Definition:
Approved
Series goal:
Accepted for 2011q4
Implementation:
Implemented
Milestone target:
milestone icon connect-q4.11
Started by
Zach Pfeffer on 2012-02-27
Completed by
Zach Pfeffer on 2012-02-27

Related branches

Sprints

Whiteboard

Description
------------------
Optimizing multicore scheduling through sched_mc is a core topic for Linaro's Power Management WG. However, to prove its benefit, integration into a full UI stack is necessary. As the currently most product compatible UI stack, Android can help ensure that the sched_mc work has a positive impact on power consumption.

This requirement covers integration of sched_mc into two Linaro Android LEBs. It includes producing fixes for scheduler behaviour and other potential problems that might prevent sched_mc from turning off a core when the system is sufficiently idle.

Session BP: https://blueprints.launchpad.net/linaro-android/+spec/linaro-platforms-lc4.11-android-full-idle

Background information:

Using ched_mc without cpuidle is not so interesting as benefits are hard to measure.
There is a cpuidle implementation for Pandaboard, git://gitorious.org/omap-sw-develoment/linux-omap-dev.git by Kevin Hilman, the OMAP power management maintainer. This is aimed for Kernel 3.2. We can

Agenda:
- A five minute recap regarding the current status of sched_mc and cpuidle for ARM.
- A short overview of the interfaces.
- Directions. Improving Android? Services? Apps? Tools?
- Short term goals. 11.11, 11.12. Create blueprints.

Goals
------------------
1. Ideas and proposals for deliverables that can demonstrate the benefits of full idle on Android and Ubuntu. It could be descriptions of libraries, Apps, Interactive or scriptable ways to change and evaluate different settings, use cases, test cases and generally a deeper understanding of the subject.
2. Some good proposals selected as backlog items.

Notes for the session:
SCHED_MC Notes

The kernel is a blackbox
Lets get some suggestions
SCHED_MC can only be used with CPU idle
    Does each member company have support
    TI
        Implementiation going upstream for 3.2, not multicore, single core
    Freescale
        Tried to push
    Samsung
        Has a minimal CPU idle implementation, does WFI only
        Amit is working on it
    ST Ericsson
        Will clean up over the next 3 months
/sys/devices/system/system/cpu
    0..2
Are the govenors modules?
    yes
PM QoS
Runtime PM framework
    Put
Tony Mansson would like proposal
    ? What can we do in Linaro in the next cycles to make the work we're doing in the kernel visible
        We have powertop
            We don't have idle driver
            DVFS
        Whats the target
            Developers
            Demonstrators
            Enhance Android
                Upstream AOSP
            Battery screen isn't very useful
        Improve communication
        Hook into runtime_pm statistics
            Android service that exports statistics
        Powertutor
            Gives pie charts
            Focuses on user behavior
                Upload statistics to
                Linaro could use this information to do on the fly PM optimization
     Make the communiction 2 way
                Send a new govenor, tweak parameters
            Integrate into LAVA, etc.
Feedback
    Flag normal vs dev mode
    Can we get your data?
    Need to be able to upgrade the kernel
    Pilot
    Android app

(?)

Work Items