Android/Mobile Microconference Notes




Welcome to Linux Plumbers Conference 2015



The structure will be short introductions to an issue or topic followed by a discussion with the audience.


A limit of 3 slides per presentation is enforced to ensure focus and allocate enough time for discussions.



Please use this etherpad to take notes. Microconf leaders will be giving a TWO MINUTE summary of their microconference during the Friday afternoon closing session.



Please remember there is no video this year, so your notes are the only record of your microconference.



Miniconf leaders: Please remember to take note of the approximate number of attendees in your session(s).



SCHEDULE



8/20/15

Organizers:
    Karim Y.
    Rom L.
    John S.
    
Topics for session 1:
Upstreaming updates
    State of staging (Greg Kroah-Hartman)
    USB gadget and ConfigFS - status & future (Andrzej Pietrasiewicz)
    Barriers for running mainline kernels on consumer Android devices (John Stultz)
Single binary image for multiple devices
    Android, partitions and customization (Rom Lemarchand)
    Running a single Android binary image on multiple devices (Samuel Ortiz)
    Adapting Android for Ara (Karim Yaghmour)
Integrating KDBus in Android (Pierre Langlois)

    
Topics for session 2:
    Toybox in Android (Rob Landley)
    Improving vendor AOSP repos (John Stultz)
    Providing per-task Quality of Service (Juri Lelli)
    Improving big.LITTLE on Android (Tim Murray)
    

Notes - session 1

Total # attendees: 60
Total # participants: 20

Introduction
- Schedule is slightly different from posted conf schedule
- Last year significant accomplishment: binder driver moved out of staging
- Key ppl here: Greg K-H, ARM, Intel ppl


State of staging (Greg Kroah-Hartman) 1:30
- Last year we merged binder from talk
- Here's what we have in staging


USB gadget and ConfigFS - status & future (Andrzej Pietrasiewicz) 2:00
- host & device can both be systems running linux
- today's focus is device
- USB functions are not same as in prog lang. They are groups of interfaces.  Several functions implemented in kernel wh/ can be composed into gadgets.  
- If you want gadget w/ some configurations & some functions, you must create a kernel module.  So, have to do at compile time.  
- Would like to be at runtime - this is where ConfigFS comes in 
- Legacy gadgets compiled as modules will differ in some ways from those composed with ConfigFS
- LHS of slide 2 shows how legacy gadgets work
- RHS of slide 2: configFS
- Table on slide 3 summarizes what happens when
- Discussion (slide 4)

Barriers for running mainline kernels on consumer Android devices (John Stultz) 2:25
- Why?
- Blockers
- Nexus 7 status
- Bjorn & Rob Clark have gotten their displays up & running
- TODO common across a lot of SOCs
- Q: binary blob - many qualcom snap dragon chip. Hexagon is qdsp6. most binary blobs running on ... can objdump and reverse engineer

Android, partitions and customization (Rom Lemarchand) 2:40
- "war stories on android one"
- What does family mean?
- wish: bootloader doing HW detection & populating DT
- Generic code: means for your particular platform (e.g. ARM, Intel)
- /odm introduced w/ Android One
- /oem
- Mark: testing new kernels on ... have to re-flash system partition & then disable verity messes things up. Would like to have kernel modules in an unsigned partition b/c they are already signed.  Would like it for updating to new kernels
- Where do you put the certification for customizations for carrier - typically those are AOSP change?
- If we added ability to load modules through adb, would it help - insmod from host?
- Have you done build system changes to enable this?


Running a single Android binary image on multiple devices (Samuel Ortiz) 3:00
- Work that's been going on at Intel Open Source Technology Centre
- IRDA: Intel reference design for android
- Why so hard?
- How to make it more scalable?
- IRDA autodetection
- Examples of autodetection records
- Q: John: Which is worse reference HAL?
- Q: Dimitry: Did you see what is time change with automatic discovery? What was impact on boot time?

Adapting Android for Ara (Karim Yaghmour) 3:00
- Big deck, skipped many slides
- What's the philosophy & where is it trying to go?
- What module maker is expected to deliver p.19
- Some interesting technologies underlying Ara
- Back cover of every module can be printed on for customization
- Greybus is probably the most interesting thing on kernel side
- HW architecture
- Module 
- SW arch

- Recap of the different related talks:

Integrating KDBus in Android (Pierre Langlois) 3:55
- Rob: Did Linus shoot down KDBus on vanilla side?
- Why work on it?
- Ideally you can take project in Android & replace libbinder with libkdbinder
- Binder API
- Q: What are the binder limitations such that you need to use KDBus?
- Q: Performance impact?
- Security discussion?
- Kernel driver always knows what has new threads
- Reference counting so can tell when services are dead
- KDBus overview                    
- libkdbinder
- p.50 - was trying to get surface flinger working & started adding support to send a file descriptor. This is the next step.
- Where is the code?
- What testing is being used? That one test has holes

Notes - session 2

Total # attendees: 38
Total # participants: 7

Toybox in Android (Rob Landley) 5:00
- See the URL for links to previous talks on Toybox
- Super quick summary
- Karim: How far are we from busybox?  
- Karim: Do other people help in cleanup & code review?
- Karim: Given that Toybox is adopted in Android, what has it not replaced in Android today?
- Amir: what would start/stop do?

Improving vendor AOSP repos (John Stultz) 6:00
- No non-Nexus device support means it's harder to upstream
- Because there isn't the review culture, you don't get discussion & also get code festering in local repos
- Samuel: Are you suggesting vendors should submit HALs to AOSP?
- Laura: Have you found problems with tightly coupled kernel & user space?
- Bero: Would it make sense to have some place to collect submissions even if they don't get into AOSP
- Karim: boot-camp refers to the get-together organized by ?
- Karim: Do you have a sense of interest by Google or vendors?
- John: WHat other pain points that docs could help?
- John: Would be great if could get away from device directories & could move more towards something like kconfig.  That would help get rid of duplicated lists of necessary packages if you could be more generic
- Laura: Do you think vendors are aware that HAL layers might be a problem?
- Dimitri: How does Linaro handle cases when they don't have the boards?
- Rom: Trouble with vendor trees, is that no one even builds the tree in the same way
- Rom: WOuld like to see more contributors to Android project so that there's more visibility
- John: Improving culture of review idea: Anyone can review in Gerrit.  Maybe we can get a random group of internal reviewers to just review stuff & see what can learn.  Might help to grow some external maintainers.


Providing per-task Quality of Service (Juri Lelli) 6:40
- SCHED_DEADLINE - several yrs of work
- Last year's LPC discussion on scheduler
- ~15% of room has heard of EAS (energy aware scheduling)
- Difference from Linux mainline scheduler
- Sched-DVFS
- Discussion
- Bobby: WIll tomorrow go into more detail?  Talk to Morten, will be discussed in EAS-1
- Deadline Scheduling


Improving big.LITTLE on Android (Todd Kjos) 7:20

- This is more a set of observations when looking at big.LITTLE in their team
- Tim couldn't make it. Todd is on Android system team
- A53/A53 => 2 different frequencies of A53
- Gives scheduler notion of up-migration or down-migration
- Fairly complex tuning
- Graph #1 ("Good perf/W curve"): Looking ath this SOC looks pretty good to tune for this performance workload.  
- Problems
- Improvements in Android M
- Bobby: Confusion about in ARM: are async tasks always background?
- Mark: HOw much real work in background tasks - what system load?
- John: how does it work w/ cgroups?
- Todd: These sorts of systems will start to be a bigger focus for us in the next year