Graphics

Ref

Name

Priority

Description

Distros

Reference

G1

Embedded Memory Management

Determine requirements, define API and drive implementation for unified memory management

G1.0

Team building and Summits

Essential

Identify appropriate representation from a variety of subsystems (graphics, multimedia, memory management)

All

G1.1

Requirements

Essential

Finalize requirements across extant architectures and linux-based platforms

All

G1.2

API

High

Finalize interfaces needed to support requirements

All

G1.3

Allocator

High

Drive implementation of allocator to support API, possibly leveraging existing (e.g. TTM)

All

G1.4

KMS

Medium

Investigate kernel modesetting support (Xserver and kernel)

All

G2

Compositing and OpenGL ES 2.0 benchmarking

Validation and performance applications for GL ES 2.0

G2.1

glcompbench

High

Add new tests to glcompbench (surfaceflinger, compiz plugins, kwin)

All

G2.2

traces

Medium

Develop new free content based traces for benchmarking

All

G2.3

benchmarks

Medium

Add glproxy support to benchmark utilities

All

G2.4

kwin

Low

Continue work on OpenGL ES 2.0 port

U

G2.5

compiz

High

Continue work on OpenGL ES 2.0 port

U

G3

GPU profiling

Profiling and visualization of GPU within the system

G3.1

Mali device driver

Low

Instrumentation of Mali device driver to enable profiling.

All

G3.2

Graphics profiling utility

Medium

Develop "dashboard" application (browser based?) for visualization of GPU profiling data.

All

G3.3

glmark2

High

Add new tests to enable profiling of key features.

All

G4

Toolkit rendering optimization

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

G4.1

cairo-gles2

Medium

Further work on GLES2 backend for cairo (performance)

All

G4.2

Fixed functionality library

Low

GLSL ES shader library implementing fixed-functionality (for porting GLES 1.1 code).

All

Toolchain

Ref

Name

Priority

Description

Estimate (months)

T1

Performance

T1.1

Thumb-2 performance

High

Continue improving Thumb-2 performance

18

T1.2

NEON performance

High

Continue improving NEON performance

12

T1.3

Generic Cortex-A tuning

Medium

Add infrastructure for having a good blend of performance across all Cortex-As micro architectures

2

T1.4

64 bit sync primitives

Medium

Round out sync primitive support by adding 64 bit support to GCC, libgcc, GLIBC, and the kernel

1

T1.5

String routines everywhere

High

Make the string routines available in distributions and common libcs such as GLIBC, Bionic, and Newib

2

T1.6

Better intrinsics

Low

Improve the NEON intrinsics so that they are usable as a replacement for in-line assembly and on par with RVDS.

1

T2

Benchmarking

T2.1

Add SPEC and EEMBC

Medium

Benchmark using SPEC 200x and more from the EEMBC suite

1

T2.2

Publish benchmarks

Medium

Provide regular, public benchmark results

2

T3

Consumption

T3.1

Linaro GCC

High

Regularly release and provide support for Linaro GCC 4.5 and 4.6

3

T3.2

Linaro GDB

Medium

Regularly release and provide support for Linaro GDB 7.2

1

T3.3

Linaro QEMU

Medium

Regularly release and provide support for Linaro QEMU

2

T3.4

In distributions

Medium

Make available in and have first-class support for Android, Yocto, and Ubuntu

2

T3.5

Binary builds

Medium

Make available as a binary build that run on any recent Linux with basic end-user support

1

T3.6

Deeper validation

Low

Use distributions such as Yocto and Android as a testsuite

2

T4

Emulation

T4.1

Maintain existing models

High

Maintain QEMU Versatile Express and BeagleBoard models so that all changes are upstream and they work with the latest evaluation builds

1

T4.2

Initial A15 support

Medium

Add support for the published Cortex-A15 features to GCC and QEMU

1

T4.3

A15 planning

Medium

Plan Cortex-A15 system emulation support for QEMU

1

T4.4

Emulation speed

Low

Improve the QEMU emulation speed through optimisation and multi-core support

3

T4.5

Device Tree support

Low

Add Device Tree support to help QEMU by informing the kernel what is and what isn't modeled.

1

T4.6

QEMU improvements

Low

Make QEMU more versatile through deeper correctness, record/replay support, selectivly enabling features, and save/restore support.

1

T4.7

Low-cost A9 model

Wishlist

Add a low-cost A9 model to QEMU to supplement or replace vexpress

2

T5

Tools and future

T5.1

Cross debug

High

Check and support using GDB as a cross debugger targeting ARM. Includes working with multiarch.

1

T5.2

STM Support

Medium

Develop a standard kernel STM driver and integrate to kernel and first-tier tools

6

T5.3

GDB server completeness

Medium

Extended GDB server to be on par with native GDB by adding hardware watchpoints and any other missing features.

2

T5.4

Fast tracepoints

Low

Add tracepoint and then fast tracepoint support to GDB server.

2

T6

Future

T6.1

Good backtracing

Medium

Show the way forward on reliable backtracing by doing a libunwind based proof-of-concept

2

T6.2

GCC backend re-work

Wishlist

Re-engineer / refactoring parts of the backend to be more productive in the future and decrease the maintenance cost

2

T6.3

QEMU blue sky

Wishlist

Investigate features such as better diagnostics, tracepoints, usable timing numbers, and reversible debugging for future cycles.

2

allocation.png

Power Management

Ref

Name

Priority

Description

Distros

Comments

TR Blueprint

PM1

SMP power management

PM1.1

sched_mc

High

Add missing functionality to scheduler for scheduling domains on ARM arch.

tr-power-smp-sched-mc

PM1.2

Hotplug governor

High

Consolidate strategy for hotplugging

tr-power-smp-hotplug-cpuidle

PM1.3

(cpu)idle code consolidation

Medium/Low

Work with ARM to use common idle, save and restore code and provide overrides where required

Impacts cpuidle. ELBA + atleast one other platform; depends on code drop from ARM

tr-power-smp-cpuidle-code-consolidation

PM1.4

Platform upstreaming

Low

Do SoC-specific work to upstream anything that blocks our work in PMWG

tr-power-smp-platform-upstreaming

PM2

Thermal management

PM2.1

Thermal manager

Medium

Continued investigation in thermal policy and making it work on Android. SoC-agnostic daemon

tr-power-thermal-manager

PM2.2

Thermal framework adoption

High

Port drivers to expose information through a consistent interface such as thermal framework

Depends on hardware with thermal sensors onboard; Only few boards have sensors with drivers available

tr-power-thermal-framework-adoption

PM2.3

Developer tools

Low

Expose thermal information through powertop/powerdebug

tr-power-thermal-developer-tools

PM3

Measurement and Tools

PM3.1

Energy measurement infrastructure

High

Work with ARM to integrate energy measurement infrastructure into Linaro's validation lab, integrate useful workload tests

Depends on timely code release by ARM, availability of Android LEBs

tr-power-measurement-energy-management-infrastructure

PM3.2

Debug Tools

Med

Fix-up powertop, ongoing maintenance of powerdebug, new features in powerdebug

tr-power-measurement-tools

PM3.3

Automated functional tests

High

Populate PM QA test suite with more functional tests; coordination with Validation team for reporting

tr-power-measurement-automated-functional-tests

Workload Estimates

Kernel

Ref

Name

Priority

Description

Distros

Reference

TR Blueprint

K1

ARM Maintainership

K1.1

Fix ARM/Linus Interface

Essential

Build group of maintainers to oversee all ARM subarchitectures with consulting from expert high-volume maintainer

tr-kernel-fix-arm-linus-interface

K1.2

Single Kernel Binary

Medium

Runtime pluggability of SoC/board differences

Nicolas's notes

tr-kernel-singlekernel-binary

K1.3

Document Device Driver Best Practices

High

How to generalize device-driver construction across SoCs and boards

tr-kernel-device-driver-best-practice

K1.4

Kernel Configuration Management

Medium

Simplify SoC/board kernel configuration (11.05)

tr-kernel-config-management

K2

Device Tree

K2.1

Device Tree Board Descriptions and Implementations

High

mx51, mx53, efika, Samsung evaluation boards, Beagleboard, Overo, and IGEP

tr-kernel-dt-board-desc-n-implementation

K2.2

Demonstration of Complete Device Tree

High

Pick an SoC and convert it to use device tree throughout

tr-kernel-demo-complete-dt

K2.3

Complete Clock Bindings

High

Leverage common clock framework when it becomes available

tr-kernel-complete-clock-bindings

K2.4

Complete virq Bindings

Essential

Complete the underlying virq API and implementation

tr-kernel-complete-virg-bindings

K3

Boot Architecture (Back to OCTO for definition)

K3.1

UEFI Position Paper

High

Complete UEFI position paper (draft for Budapest LDS)

K3.2

Boot Architecture Technical Recommendations Paper

High

Uboot reference implementation, upgrade procedures, security issues

K3.3

kexec Boot Loader

Low

Investigate, if appropriate implement for 11.11 cycle

K3.4

Append Device Tree and Initrd to zImage

Medium

Support minimal bootloaders and simplify boot-image installation

K3.5

Implement Device Tree Bindings Describing Boot Method

Medium

Enable the Linux kernel to know how to upgrade kernel and boot loader

K3.6

Standard Boot-Media Layout

Medium

Common layout for boot media across ARM boards and SoCs

K3.7

Recommended Hardware Changes for Device Discoverability

Low

The ability to probe for hardware permits full auto-configuration

K4

Android

K4.1

Android Upstreaming

High

Complete upstreaming RTC, start upstreaming low-memory killer

tr-kernel-android-upstreaming2

K4.2

Android Common Tree

Medium

Make Linaro changes available in Android-compatible kernel source tree (11.05)

tr-kernel-android-common-tree2

K5

Standard Architecture and HW Support

K5.1

Finish Thumb2 Support

High

kprobes, ftrace, dynamic trace, stack backtraces, string routines (11.05)

tr-kernel-finish-thump2-support

K5.2

Cortex A15 initial support

Low

Get started on integrating Cortex A15 support as permitted by hardware availability

tr-kernel-cortex-a15-initial-support

K5.3

Linux kernel on UEFI

Low

Get started on integrating UEFI support as permitted by UEFI availability

tr-kernel-linux-on-uefi

K6

Monthly quasi-release of Linaro kernel

High

Enable John Rigby's monthly Linaro-image release

tr-kernel-monthly-release

K7

Improve Linux Kernel Storage Performance

Details

K7.1

Flash Storage Remapping

High

Improve performance of standard filesystems on flash via remapping layer

tr-kernel-flash-storage-remapping

K7.2

Optimize Kernel/User Buffer Handling

Low

Reduce overhead of data movement between kernel and user

K7.2

Optimize I/O Scheduling for Flash

Medium

Tune Linux I/O schedulers away from disk towards flash

tr-kernel-optimize-flash-io-scheduling

K7.3

Non-Blocking Request in MMC Framework

High

Asynchronously pass work to mmc framework from block device to minimize mmc request preparation latency (11.05)

tr-kernel-nonblocking-request-in-mmc

K7.4

eMMC Background Maintenance

Medium

Gather existing patches, benchmark, and submit upstream as appropriate

tr-kernel-emmc-background-maintenance

K7.5

Implement eMMC High Priority Interrupt

Low

Prevent long media reads from blocking high-priority short I/Os (e.g., page faults)

K7.6

SDIO Single Function Support

High

Reduce inquiry overhead at interrupt time in common case where only one SDIO function is in use

tr-kernel-sdio-single-function-support

K7.7

SDIO Cache Management

TBD

Reduce caching overhead if DMA in use on devices supporting more than 30MB/s

K7.8

SDXC Controller Support

Medium

Gather prototype patches, fill out support

K7.9

eSATA Support

Medium

Verify existing Linux-kernel support for ARM, fix as needed

K7.10

DMA Engine on ARM

High

Improve documentation for ARM usage

tr-kernel-dma-engine

K7.11

USB Mass Storage

Medium

Separate data/control USB buffering, optimize USB buffer types

tr-kernel-usb-mass-storage

K8

Improve Linux Kernel General Performance

K8.1

Memory Regions Support

High

Contiguous memory regions with eviction support for sharing and memory power conservation (11.05)

tr-kernel-memory-region-support

K8.2

Buffer Management API

Essential

Support graphics group as needed on this topic

tr-kernel-buffer-management-api

K8.3

Lazy VFP Investigation

Low

Reduce context-switch overhead from VFP

tr-kernel-lazy-vfp-investigation

K8.4

Optimized gettimeofday() Investigation

Low

Reduce application-level timekeeping overhead by removing system call in common case

tr-kernel-gettimeofday-investigation

K8.5

Kernel Benchmark Tools

Low

Gather information about benchmarks to test kernel performance

K9

Improve Linux Kernel RAS

K9.1

Fix LTP regressions and failure

Medium

Focus on ARM-specific failures, other failures low priority

tr-kernel-ltp-failures

K9.2

Offline CPUs to boot-loader mode

Medium

Bring ARM in line with other Linux architectures

tr-kernel-offline-cpu-to-bootloader-mode

K9.3

kexec

High

Test kexec on remaining platforms (11.05)

tr-kernel-kexec2

Platforms

Ref

Name

Priority

Description

Team

P1

Linaro for product builders and innovators

P1.1

Android LEB

Essential

Provide a Linaro optimised build of Android

Android

P1.2

Android Toolchain packages

High

Provide Linaro Toolchain and Platform code ready for consumption by android product builders

Android

P1.3

Ubuntu LEB

High

Provide and refine a Linaro optimised build of Ubuntu.

Developer Platforms

P1.4

Nano image

Low

Provide and refine a 'small as functionally possible' image that can be used for simulator models. Other build methods are to be explored to produce the smallest possible image

Developer Platforms

P1.6

Device Tree enablement

High

Package and test device tree support from the WG's, integrate support into the LEB images. This includes u-boot, kernel and build-tools work.

Android, Developer Platforms

P1.7

Experimental Generic HWPACK

Low

Experiment with providing hwpacks that can be shared in Ubuntu and Android

Android, Developer Platforms, Infrastructure

P2

Pervasive Integration and Validation

P2.1

Continuous component integration

High

Deploy a continuous integration solution to build key components on a regular basis and integrate them into the wider platform, detecting any issues

Infrastructure, Validation

P2.2

Continuous image building and validation

Essential

Continuously build and automatically test Linaro Evaluation Builds, using the appropriate frameworks for the image (Ubuntu-based, Android-based, ...) creating new tools where necessary.

Infrastructure, Validation

P2.3

Validation hardware expansion

High

Maintain and expand the hardware and software solution used to validate key components; focus is on scaling the validation lab rather than spreading; e.g. high-volume low-cost boards.

Validation

P2.4

Power Validation

Medium

Ensure Validation Lab and default testsuite grow ability to validate powermanagement aspects existing power management tools and benchmarks to produce a comprehensive power management validation and reporting infrastructure

Validation, Power WG

P2.5

Ubuntu Validation Suite

Medium

Develop and integrate existing tests to get to a full UI validation suite for Ubuntu

Developer Platforms

P2.6

Android Validation Suite

High

Develop and integrate existing tests to get to a full UI validation suite for Android (e.g. CTS, 0xbench, monkey testing, etc.)

Android

P2.7

Hardware build farm

High

plan, allocate, setup and maintain the build infrastructure for Linaro Evaluation Builds, Key components

Infrastructure

P3

Engineering Efficiency

P3.1

Code review with Gerrit

Low

Deploy and expand tools to allow structured code review within Linaro

Infrastructure

P3.2

Remote Development and Porter Boards

Medium

Create a remotely accessible hardware and software combination that allows developers to access hardware that they physically do not have. Provide the tools needed to allow these devices to be access and utilised securely, fairly, and optimally

Infrastructure, Validation

P3.4

Android Build Tool Front-end

Medium

Produce and refine tools to ease the process of building and installing Linaro Evaluation Builds and other embedded targets for WGs.

Infrastructure

P3.5

Developer image

High

Provide and refine a developer-focused image that has a small footprint but includes modern developer tools, target less than 100mb image.

Developer Platforms

P3.6

GNU cross-compiler toolchains

High

Package and maintain Linaro ARM toolchain as a cross-compiler for ARMv7 and include ARMv5 and ARMv7-hf

Developer Platforms

P3.7

cross-buildable ALIP image

High

Enable the cross-compilation of all ALIP packages either natively or in a simulator if necessary; convergence with Developer Image is the goal

Developer Platforms

P3.8

Upstream Android Build

Medium

Generic upstream builds for android with linux-linaro-android kernel

Android

P3.9

Android Hardfloat experiment

Medium/High

Setup an experimental android hardfloat image based on the Upstream Android Build and benchmark it

Android

P3.10

Ubuntu archive branching and rebuilds

Medium

Allow the Ubuntu archive to be branched and rebuilt with different components and different toolchain versions and configuration

Infrastructure

Multimedia

Ref

Name

Priority

Description

Distros

Comments

TR Blueprint

MM1

Simpler OpenMAX Integration

MM1.1

Cross Vendor Implementation Summary

Essential

Study of vendors implementations, challanges, specific extensions

Ubuntu, Android, Yocto

MM1.2

Reference Implementation

Medium

Platform implementation of unified OpenMAX stack

Ubuntu, Android, Yocto

MM2

Kernel Audio Feature Baseline

MM2.1

UCM Baseline

High

Implement Use Case Management, includes Pulseaudio and ALSA profiles

Ubuntu, Android, Yocto

MM2.2

ASoC Baseline

Medium

TBD - will come out of ASoC Embedded Summit May 3-5

Ubuntu, Android, Yocto

MM3

Codec Optimization

MM3.1

JPEG NEON -turbo and source branch

High

NEON optimized JPEG decoder for libjpegturbo

Ubuntu, Android, Yocto

MM3.2

VP8 SMP multithreading

High

NEON optimized decoder from Android

Ubuntu, Android, Yocto

MM3.3

AAC gstreamer plugin

Medium

NEON optimized implementation for GStreamer from Android

Ubuntu, Yocto

MM4

Neon Optimization Forum

MM4.1

NEON Codec Optimization Mini-summit

High

Organize and run a mini-summit at Linaro's Cambridge sprint

*

MM4.2

NEON Forum Collaboration Tools

Medium

Set up cross-vendor NEON mailing list and recurring call

*

Cycles/1111/TechnicalTopics/Summary (last modified 2011-04-27 20:22:56)