Priorities Key

Key

Description

Essential

Must happen in this cycle

High

Desirable in this cycle

Medium

Would like to happen in this cycle

Low

Likely to be dropped from this cycle

Rejected

Not considered in this cycle

Toolchain

  • Sponsor: Roger T. (ARM)
  • Lead: Michael H.
  • WG: Toolchain
  • Commentary

Ref

Name

Priority

Description

Reference

T1

Performance

Improve the performance of typical code on current and near-term ARM Cortex-A architectures

T1.1

thumb-2-performance

High

Continue to improve the time-based performance of GCC 4.5 for Thumb-2 on the Cortex-A9

T1.2

neon-performance

High

Continue to improve the time-based performance of GCC 4.5 by improving vectorisation support for NEON on the Cortex-A9

T1.3

string-routines

Medium

Widen and continue to improve the string routines (memcpy, strcpy, etc) in GLIBC, Bionic, and newlib on the Cortex-A9 with NEON

T1.4

atomic-memory-operations

Low

Efficient ARMv7A atomic memory operations

Research Topics

T2

Dev tools correctness

Fix gross errors in the core toolchain

T2.1

gdb-correctness

Medium

Continue fixing GDB for Cortex-A9 with NEON and SMP on Linux

T2.2

valgrind

Medium

Complete and verify Valgrind support for Cortex-A9 with NEON

T2.3

tr-toolchain-dev-tools

Low

Investigate libunwind, may only require a small effort to fix.

Research Topic

T3

Dev tools expansion

Extend the development tools to match the state of the art

T3.1

dev-tools

High

Investigate the state of the art in developer tools and recommend future areas

T3.2

oprofile

Medium

Enusure oprofile supports Cortex-A9 with NEON and SMP

T3.3

openocd

Medium

Extend and tidy up the OpenOCD support for Cortex-A8 and Cortex-A9 with NEON

T3.4

extend-gdb

Low

Extend GDB for ARM

T3.5

llvm-investigate

Low

Monitor LLVM (also, what is our long term approach?)

Research Topic

T4

Validation

Validate the performance and correctness of any outputs

T4.1

platforms

Medium

Define platforms (phone, tablet, ...) and workloads (video decode, web browsing, ...) to optimise against

T4.2

open-benchmarks

Medium

Implement an open, sharable set of benchmarks that represent the workloads

T4.3

regular-benchmarks

Low

Provide regular benchmarks results showing any improvements

T5

Consumption

Be available in most common GNU/Linux-based systems

T5.1

gcc-4.5

High

Maintain a Linaro GCC 4.5 branch, making periodic releases to ensure timely access to output

T5.2

initial-4.6

High

Track GCC 4.6 such that a Linaro GCC 4.6 is available shortly after the FSF 4.6 release

T5.3

4.5-in-ubuntu

Medium

Make Linaro GCC 4.5 available in major operating systems such as Ubuntu N

T5.4

4.6-in-ubuntu

Low

Make a preview of Linaro GCC 4.6 available in major operating systems such as Ubuntu N+1

T6

Emulation

Ensure support for usable Cortex-A8 and Cortex-A9 platforms in QEMU

T6.1

faster-qemu

Low

Improve the emulation performance

T6.2

integration

Medium

Add complementry support for the other toolchain outputs such that most features can be demonstrated or trialed under emulation

T6.3

consolidate-qemu

High

Consolidate existing ARM QEMU versions

T6.4

qemu-for-a9

Low

Add Cortex-A9 with SMP support to QEMU

Power Management

  • Sponsor: Gokul S. (TI)
  • Lead: Amit K, Loïc M.
  • WG: Power Management
  • Commentary

Ref

Name

Priority

Description

Reference

PM1

PM frameworks

Improve behaviour of existing Linux PM frameworks on the ARM architecture

PM1.1

Improve cpufreq for ARM

PM1.1.1

Ondemand governor improvements

High

Ondemand response is either too slow or it does not maintain the frequency.

PM1.1.2

Thermal interfaces

Medium

Make sure that thermal information is exported so that policy manager can prevent overheating of system

PM1.2

Improve cpuidle for ARM

PM1.2.1

Latency measuring infrastructure

High

Export latencies of various idle states

PM1.2.2

ARM idle state -> C-state mapping

Rejected

Adopt consistent language when mapping ARM idle states (across various SoCs) to C-states

PM1.2.3

Governor improvements for realtime usecases

Medium

Realtime usecases (high frequency events) are not handled well by cpuidle currently

PM2

Tools

Tools to make it easy for developers and users to track PM-offenders

PM2.1

Improve powertop

PM2.1.1

Add ARM-specific hints

Rejected

Add ARM-specific hints around NEON, VFP and SMP to powertop (if any)

PM2.1.2

Add idle state latencies

Rejected

After adding cpuidle latency tracking infrastructure (display this in powertop or powerdebug?)

PM2.1.3

Add SOC-specific and embedded hints

Rejected

SoC-specific hints (accelerators, peripherals)

PM2.1.4

Investigate support for "tuning for idle"

Low

Display more effectively what is keeping us from idling (timeline-based view of wakeups?) + Documentation on how to debug low-power usecases

PM2.2

Add powerdebug features

PM2.2.1

Visual representation of runtime clock trees

High

If the clock tree is available using debug_fs, depict it visually (per-peripheral?)

PM2.2.2

Visual representation of runtime regulator trees

Medium

Show how the regulator tree is connected (per-peripheral?)

PM3

Multi-core

Enhance kernel support to minimise power consumption on multi-core platforms

PM3.1

Improve multi-core PM support

PM3.1.1

Multi-core decision co-ordination

Medium

Verify that single thread of governor scales both cores in sync

PM3.1.2

Generic ARM CPU hotplug support

High

Infrastructure code to pull power gated CPUs in and out of actions

PM4*

Validation

Medium

Validate a minimal software stack wrt. PM

QA

Infrastructure

  • Sponsor: Paul M. (IBM)
  • Leads: Scott B., Steve L.
  • Platform: Infrastructure
  • Commentary

The Infrastructure team is somewhat unique in Linaro. Part of our work is relatively long term and can be tracked over a six month cycle with blueprints, and part of our work crops up during the normal course of business and usually needs to be done in a much shorter time frame. To accommodate these needs the Infrastructure team is adopting a new process for working that is captured in our stakeholder process document.

Ref

Name

Priority

Description

Reference

I1

Continuous integration

High

Setup and maintain a continuous integration infrastructure. Automated builds and tests of individual projects on a continuous basis.

tr-continuous-integration

I2

Patch Management

Low

Investigate & deploy patch management system allowing us to get metrics about patches and track state of patches.

tr-patch-management

I3

Derived Archives

Complete work and tools postponed from last cycle.

I3.1

Derived archive rebuild

Medium

I3.2

Private archive hosting

Medium

I3.3

Archive management tools

Low

Improved tools for developers to interact with archives.

I4

Quality Assurance

I4.1

Medium

Integrate additional test suites and benchmarks into Abrek.

Benchmark & test suite list

I4.2

Improve QA Dashboard based on feedback and working group needs

Medium

I5

Image Building

Low

Customization of Offspring for Linaro image building needs.

I6

Stakeholder Process

High

Informational session to describe the stakeholder process we will be adopting for 11.05.

Stakeholder Process

Graphics Acceleration: Kernel to Userspace

  • Sponsor: Andrea G.
  • Leads: Alexander S., Jesse B.
  • WGs: Middleware/Graphics
  • Commentary

Ref

Name

Priority

Description

Reference

G1

Runtime selection of toolkit rendering backend

Allow prebuilt application and libraries to use GLES2.0 backends where available

G1.1

skia

Essential

Runtime detect NEON support in skia

G1.2

cairo

Medium

Runtime selection of best surface rendering type in cairo

G1.3

qt

Medium

Runtime selection of painter backend for qt

G1.4

efl

High

Runtime selection of OpenGL ES 2.x backend for efl/evas

G1.5

clutter

Low

Runtime selection of OpenGL backends (desktop and ES)

G2

Toolkit rendering optimization

Optimize toolkit graphics operations through use of GPU and other co-processors (NEON, vfp)

G2.1

skia

Medium

Add backend that uses GPU (OpenGL ES 2.x) and NEON

G2.2

cairo

High

Add backend that uses GPU (OpenGL ES 2.x) and NEON

G2.3

qt

Medium-High

Optimize existing OpenGL ES 2.x backend using NEON

G2.4

efl

Essential

Optimize existing OpenGL ES 2.x backend using NEON

G2.5

pixman

Low

Further optimization of pixman for NEON and vfp

G2.6

NEON graphics library

Low

Opportunistically implement library of optimized NEON-based graphics routines

G3

Optimize compositors for GLES 2.0

Ensure important compositors render efficiently

G3.1

clutter compositors

Medium

Optimize OpenGL ES 2.x graphics subsystem for clutter compositors

G3.2

compiz

High

Optimize OpenGL ES 2.x graphics subsystem for compiz

G3.3

meegotouch-compositor

High

Optimize OpenGL ES 2.x graphics subsystem for meegotouch-compositor

G3.4

metacity

Low

Optimize OpenGL ES 2.x graphics subsystem for metacity

G3.5

kwin

Low

Optimize OpenGL ES 2.x graphics subsystem for kwin

G3.6

chromium-wm

Medium

Optimize OpenGL ES 2.x graphics subsystem for Chromium window manager

G3.7

pixelflinger

Low

Optimize OpenGL ES 2.x graphics subsystem for pixelflinger

G4

Mesa software rendering for OpenGL ES 2.x

Add missing Mesa features to allow GLES 2.0 application testing and development via software rendering

G5

Direct rendering support for ARM GPUs

Prepare DRI and related frameworks for integration of ARM GPUs

G5.0

Kernel support for ARM GPUs

High

Prepare kernel frameworks for integration of ARM GPUs

G5.1

Kernel memory management

High

Standardize memory management for ARM/embedded GPUs (GEM, TTM, UMP, etc.)

G5.2

DRM support for non-PCI GPUs

Essential

Make DRM and DRI frameworks ready for non-PCI devices

G5.3

Consolidated Xorg DRI framework for ARM GPUs

Medium

Share a single DRI framework and make vendor specifics pluggable

G6

Validation & test apps for GL ES 2.0

validation and performance applications for GL ES 2.0

G6.1

Real world benchmarks

Essential

Extract performance and functionality tests from real life applications

G6.2

Provide test application front-end

Medium

Implement a graphics test front-end that would allow easily running various OpenGL ES 2.x tests, possibly displaying system configuration

G6.3

Integrate system performance metrics in tests

High

Provide view into cache, bus and power utilization per graphics stack and configuration; investigate using perf events

G6.4

Port game to OpenGL ES 2.x

Low

Investigate options, select and port game as GLES2.0 graphics test application

Multimedia: Optimization and Consolidation

  • Sponsor: Yves V. (Freescale)
  • Leads: Andrea G., Alexander S.
  • WGs: Middleware/Multimedia
  • Commentary

Ref

Name

Priority

Description

Reference

MM1

Optimization

Multimedia optimizations for 11.05

MM1.1

software codecs

Software codec NEON optimizations for 11.05

MM1.1.1

JPEG decoding

Essential

optimize JPEG decoder using NEON and hardware

MM1.1.2

VP8 decoding

High

optimize VP8 decoding using ffmpeg and reference codec

MM1.1.3

AAC/EAAC/AAC+ encoding

High

optimize AAC/EAAC/AAC+ encoders

MM1.1.4

VP6 decoding

Medium

optimize VP6 open-source decoders for ARM using NEON

MM1.1.5

other low prio decoding

Low

optimize xvid, theora, flag, vc1, AAC/EAAC/AAC+, Flac 5.1, MPEG surround, MP3 and AMR software decoders

MM1.2

pulseaudio

pulseaudio optimization work for 11.05

MM1.2.1

fifo

High

increaese fifo queue size for pulse audio (currently worked on upstream), but keep speech latency in mind

MM1.2.2

low power mode

Medium

optimize leverage of low power mode of ARM in pulseaudio scenarios; talk to policy manager

MM1.2.3

compressed audio

Low

investigate how to optimize compressed audio handling for pulse; use case: hdmi understand compressed audio; what can we do for single + mixed streams?

Research Topic

MM1.2.4

big buffer predecoding

Low

investigate what can be done about big buffer predecoding for single and mixed streams

Research Topic

MM2

Consolidation

Multimedia Consolidations for 11.05

MM2.1

gstreamer-openmax

High

Provide unified gstreamer-openmax backend with support for multiple SoCs

MM2.2

kernel/user-space multimedia APIs

Low

Consolidate and Standardize kernel multimedia api

MM3

Validation

Multimedia Validation Tools for 11.05; Improve and extend free software multimedia validation suites for functional & performance testing of full gstreamer stack (video/audio playback, recording, etc.)

MM3.1

Free test content

Essential

assemble redistributable test content for video/audio that can be used for performance and validation tests

MM3.2

Validation suite

Medium

validation suite that automatically plays different video formats full screen and in window (different sizes); should also cover audio cases as well as encoding

MM3.3

system metric/resource gathering app

High

metric application that gathers important performance metrics during validation suite run and interactively (see G6.3)

MM3.4

player and recorder instrumentations

High

instrumented multimedia player/recorder that logs metrics not commonaly available from system (like FPS, skipped frames with timestamp etc.)

MM3.5

OpenMAX compliance suite improvements

Medium

Investigate and extend OpenMAX compliance suite to detect potential problems

MM4

Standardization

Multimedia Standardizations for 11.05

MM5.1

openmax core

Low

Integrate hardware rendering improvements into single framework; potentially Bellagio or other options

Research Topic

MM5.2

camerabin camera features

High

standardize and extend camera properties and use-cases supported by camerabin

MM5.2

camerabin application support

Essential

add support for camerabin and its features to camera apps and frameworks (cheese, qt mobility, etc.)

Developer Platform

  • Sponsor: Roger T. (Freescale)
  • Leads: Steve L., Amit K.
  • Platform: Foundations
  • Commentary

Ref

Name

Priority

Description

Reference

DP1

Native developer tools

Provide a full suite of tools for Linux development on ARM hardware

DP1.1

Integrate profiling tools

High

Maintenance of oprofile, ltrace, strace, systemtap and potentially LTTng

DP1.2

Native build tools

High

Package and maintain Linaro ARM toolchain

DP1.3

Introspection tools

Medium

Implement or integrate tools for a) displaying and changing CPU and SoC configurations and b) measuring userspace cache and bus performance (see G6.2)

DP2

Host-based developer tools

Improve integration of x86-based development tools for embedded development in Ubuntu

DP2.1

Cross-build environment

High

Packaging and maintenance of Linaro ARM toolchain as a cross-compiler for both Linux and ARM embedded targets; multiarch integration

DP2.2

Cross-compilation tool

Medium

Maintain and continue to extend xdeb for use as a high-level tool for cross-compiling sets of .deb packages

DP2.3

Cross-debug environment

Medium

integration and maintenance of gdbserver and OpenOCD

DP2.4

Eclipse integration of cross-compilation utilities

Medium

Provide any necessary .deb packages to support use of Linaro cross-compile toolchain from within Eclipse IDE

DP3

Improve discoverability and use of platform tools

Medium

Make it easy for developers to locate and understand what profiling and debugging tools to use

DP4

Image generation

Provide minimal and developer bootable ARM images

DP4.1

Headless test image

High

Maintain existing headless image for a minimal runtime environment that can be used for testing and as a base for further customization by additional package selection

DP4.2

Developer image

High

Provide and maintain an image that includes a full complement of preinstalled development tools from DP1

Kernel

  • Sponsor: Sree (Samsung), Paul M. (IBM)
  • Leads: Paul M., Loïc M.
  • WG: Kernel

Ref

Name

Priority

Description

Reference

K1

Enable large contiguous memory allocations (UDS)

Medium

Improve allocation and eviction facilities to ensure large contiguous blocks may be allocated and allow turning off unused memory

K2

Standard Architecture (UDS)

High

Ensure the kernel supports our selected SMP, V7-A, Thumb2, NEON configuration, including HIGHMEM support

K2.1

NEON

Ensure proper support for NEON in the kernel

K2.2

SMP and HIGHMEM

Ensure proper for SMP and HIGHMEM in the kernel

K2.3

Runtime SMP

Enable running SMP kernels on both SMP and UP

K2.4

Thumb 2

Ensure proper support for Thumb 2 in the kernel and ship Thumb 2 kernels

K3

BSP Investigations (UDS)

Low

Investigate areas of divergence to inform further kernel development

K4

Android (UDS)

Low

K4.1

Android Upstreaming

Help get some Android kernel features or patches upstreamed

K4.2

Android Common Tree

Setup common Android kernel tree with support for Linaro target hardware platforms

K4.3

Demo Features in Android

Demonstrate features of the Linaro kernel in the Android tree

K5

Storage Performance (UDS)

Medium

Optimize SD, eMMC, potentially USB extensibility and performance

K5.1

Storage Performance: SD

Measure and address storage-performance issues in SD

K5.2

Storage Performance: eMMC

Measure and address storage-performance issues in eMMC

K5.3

Storage Performance: USB

Measure and address storage-performance issues in USB

K5.4

Storage Performance: Benchmarking

Produce automated benchmarks to measure root-filesystem-style performance

K6

Kernel Configuration Management (UDS)

Low

Tune kernel configuration for platforms, and provide tool support

K6.1

Optimize kernel configuration

Optimize existing kernel configs for different boards

K6.2

Record board configurations

Document in machine-readable format optimal board configurations for different front-ends

K6.3

Configuration management tool

Implement simple tool to specify and check configuration for target environment

K7

Device Tree (UDS)

High

Further implementation of kernel FDT facilities, and support work migrating to new SoCs

K7.1

Finalize Device Tree API

Refine current device-tree patches and use experience to finalize API

K7.2

Device Tree for more SoCs

Improve SoC coverage of Device Tree

K7.3

U-Boot Device Tree Support

Implement U-Boot Device Tree Support

K7.4

Device Tree Migration

Gather and review migration plans towards Device Tree with vendors

K8

kexec (UDS)

Low

Fix kexec on ARM and verify/document use of kdump for supporting crash analysis

K9

Testing (UDS)

Medium

Run test suite periodically, fixing regressions and adding coverage

Cycles/1105/TechnicalTopics (last modified 2011-03-25 18:15:57)