74

HKG15-100: What is Linaro working on - core development lightning talks

  • Upload
    linaro

  • View
    485

  • Download
    2

Embed Size (px)

Citation preview

Presented by

Date

Event

What is Linaro working on?

Core Development GroupCore Engineering

Linaro

Core Development developers

Monday Feb 9th

Linaro Connect HKG15

Session 1 & 2: table of contents

1. Kernel WG1.1. Android Upstreaming / John Stultz1.2. U-Boot64 / Linus Walleij1.3. ARMv8 / Deepak Saxena1.4. ARM32/arm-soc maint. / Arnd

Bergmann1.5. Coresight / Mathieu Poirier1.6. MMC / Ulf Hansson

2. Security WG2.1. OP-TEE / Joakim Bech

1. Power Management WG1.1. SoC idling / Ulf Hansson1.2. EAS development / Mike Turquette

& Alex Shi (LSK)

2. Virtualization2.1. KVM/Christoffer Dall2.2. QEMU/Peter Maydell2.3. XEN / Julien Grall & Parth Dixit

3. Other topics3.1. jic - the green-on-black JIRA

client/Serge Broslavsky (PjM)3.2. Testing in upstream board farms /

Kevin Hilman (PMWG)

Session 1

Linaro Kernel WG.Core Development Group

Android Upstreaming

by John Stultz

1. Daniel’s FIQ work getting very close to merging2. Portions of Kiran’s wakeup_source for usb phys’s

merged3. Lollipop using mempressure notifiers for low-memory-

killer, and deprecated logger & alarm-dev4. Binder out of staging, and officially merged in 3.195. Number of fixes from Linaro merged into Google’s

android-3.14 common.git tree.

Recent accomplishments

Work in progress

1. Finishing FIQ merging & FIQ/NMI-like functionality for ARMv8.

2. Pushing “Avoid kdb on panic” patch.3. Research into running libbinder over kdbus.4. Android Gadget conversion to ConfigFS Gadget.5. Constraint aware allocator - cenalloc.6. Groundwork for ADF/KMS effort.

Next steps

1. Continue pushing work in progress2. Deprecate staging code that’s recently been obsoleted3. Establish form-factor platforms for upstream

development and validation4. Continue following Google development kernels for

linux-linaro and LSK5. Continue working closely with Google devs &

community

U-Boot64by Linus Walleij

Recent accomplishments

1. Repair semihosting code broken in Linaro GCC 4.9-2014.09 (merged upstream)

2. Volunteer to maintain semihosting for FVP and base models

3. Convert Versatile Express 64bit family to Kconfig (and generic board)

4. Add support for the ARM Juno Development Platform and demonstrate on real hardware

Work in progress

1. Upstream Kconfig changes.2. Upstream fix for single CPU entry on multi-cluster

machine MPIDR register workaround.3. Upstream Juno Development Platform support.4. Investigating PSCI dependencies - just stubs in U-Boot

this should go into ARM Trusted Firmware instead we think.

Next steps

1. Ethernet boot support on the Juno Development Platform.

2. Persistent Storage (flash, SD card, internal USB disk) boot support on the Juno Development Platform.

3. More 64bit hardware support for U-Boot!4. Compressed images - handled by the boot loader, make

sure it works.5. Access memory >4GB.

ARMv8by Deepak Saxena

Work Summary

1. Audit/seccmp merged

2. Kprobes v5 patches posted

3. Uprobes work started

4. Kexec v7 patches posted

5. Validating KGDB functionality

ARM32 / arm-soc

maintainershipby Arnd Bergmann

arm-soc statistics

patchescontributorsbranchesinsertionsdeletionsdts sizemach-* size

v3.18914158108

26,8959,748

217,687437,771

v3.19-rc41,138

175132

39,17637,514

236,220411,268

v3.17977157103

41,38444,571

205,366441,565

v3.161,253

156126

51,76020,372

185,021472,115

Work in progress

1. Complete armv6/armv7 multiplatform support: realview, msm, mmp, s3c64xx, dove, shmobile

2. Complete DT conversion:imx, mmp, omap3, orion5x, realview, s3c24xx, s3c64xx

3. 64-bit time_t (see separate session)4. More general PCI implementation5. More general IOMMU implementation

Coresightby Mathieu Poirier

Recent accomplishments1. Framework and drivers accepted in the 3.19 merge

window.

2. Support for 2 new platforms: vexpress-TC2 and D01.

3. Power management awareness currently under review

on the mailing lists.

4. Integration of basic CoreSight testing in LAVA CI loop.

5. Work on ARMv8 is well underway.

Work in progress

1. ETMv4 driver support for ARMv8.

2. Juno support for CoreSight.

3. STM32/500 driver development.

4. Integration of CoreSight with Perf.

5. Back porting of the framework to LSK3.10/3.14.

6. Stand alone decoding library (ARM Ltd.).

Next steps

1. Upstream support for CoreSight on ARMv8.

2. Upstream ETMv4 and STM32/500 drivers.

3. Continue and finish integration with Perf.

4. Commence integration of CoreSight with Ftrace.

5. Integrate with trace decoding library from ARM Ltd.

MMCby Ulf Hansson

Recent accomplishments

MMC core:1. Refactoring, modernization and consolidation.2. Bugfixes and various improvements.3. Extended hardware reset support (3.20).4. DT subnode parsing, mainly for embedded SDIO devices (3.20).5. MMC Power Sequences (3.20) - finally!

MMC host:1. Increased amount of patches. From bugfixes to new features.2. Support for 11 new MMC controllers (3.17 to 3.19).

Work in progress

MMC core:1. Periodic re-tuning for HS200, HS400 and SDR104.2. Extended support for MMC Power Sequences.3. Proposal of using dynamic frequency scaling.4. Improvement of how to select I/O voltage level.5. eMMC 5.x. Command Queuing, FFU, PSA etc.6. SD 4.0, UHS II support.

MMC host:1. New host driver for Fujitsu SDHCI controller.2. Bug fixes and new features.

Next steps

1. Refactoring, modernization and consolidation.

2. eMMC 5.x, SD 4.0.

3. Fix MMC Erase/Discard bugs!

4. Expect increased focus on SDIO.

Questions?

Linaro Security WG.Core Development Group

OP-TEEby Joakim Bech

Recent accomplishments

1. Porting OP-TEE: ARM Juno, STM Orly/Cannes,

Allwinner A80, QEMU, FVP

2. Cryptographic abstraction layer in Trusted OS

3. GlobalPlatform - Secure Elements

4. ARMv8-A crypto extensions (SHA1, SHA256)

5. xtest - OP-TEE’s main test framework

Work in progress

1. Upstreaming OP-TEE’s Linux kernel device driver

2. GlobalPlatform Internal API v1.1

3. Enhancing Secure Storage

4. AArch64 support in the Trusted OS.

Next steps

1. GlobalPlatform Trusted UI v1.1

2. Multiple TA support

3. Signature verification of Trusted Applications

4. Enhancing testing

Questions?

Session 2

Linaro Power

Management WG.Core Development Group

SoC idlingby Ulf Hansson

Recent accomplishmentsProvide a reference runtime/system PM implementation on

a SOC:

● Address corner cases in the PM core frameworks.

● Modernizing and improving the generic PM domain (aka

genpd).

● Exynos and Ux500 SoCs use genpd and now serve as

references.

Work in progressCPUIdle is about the CPU, not clusters!

● Today: CPU cores/clusters handled separately.

○ “Coupled-idle states”: OMAP4, Tegra.

○ MCPM.

○ SoC specific backend drivers.

● Tomorrow: SMP/HMP-awareness in ‘Idle’ core

○ CPUs, clusters, shared caches and interconnects.

○ Reduces SoC-specific code.

Next steps (1/2)SMP/HMP-aware Idle core● The idea: Use genpd!

○ Supported by various PM maintainers.

○ genpd: can group devices into domains and can be nested.

○ genpd: is build on runtime PM, domains power off/on at runtime PM suspend/resume.

○ Group CPU devices into a genpd to model a CPU cluster domain.

○ One genpd for each cluster.

● The challenges:○ Redesign genpd’s locking mechanism to deal with atomic context.

○ Optimize genpd to minimize latencies.

○ Integrate the genpd based solution with existing SoC-specific solutions.

○ Investigate use of scheduler topology information (introduced by EAS)

Next steps (2/2)

Long-term goals

● Simplify deployment of runtime/system PM support.

○ Reduce duplicated code for drivers to implement runtime PM and

suspend PM.

○ Decrease number of PM_* Kconfig options.

EAS develby Mike Turquette (PMWG)

Recent accomplishments● Merged CFS infrastructure & improvements:

○ git log [email protected] kernel/sched/

● Tighter CPUidle and scheduler integration.

● Proved idle interrupt prediction can improve.

● Scheduler-driven CPU frequency selection proof of

concept.

● Improved collaboration between developers hacking on

EAS.

Work in progress● CPU capacity rework awaiting review on LKML

● Improved interrupt prediction undergoing testing○ Evolving from per-task to per-device tracking

● Experiments combining task placement with frequency

selection

● Idle task behavior unification across archs

● SMP bringup, hotplugging and cpuidle suspend method

unification

Next steps1. Characterize power & performance

1.1. Backports will make it easier for members to run

their own benchmarks and measurements

2. Iterate patches on LKML

3. Discuss it with you this week

4. Merge it upstream!

EAS backportingby Alex Shi (LSK)

Recent accomplishments1. Backport CPUIdle/sched changes to 3.10 LTS

a. CPU topology changes (Vincent)

b. bL cpuidle, cpuidle-aware scheduler (Daniel, Nico)

c. ARM’s Energy Model (Juri - ARM)

d. many scheduler optimizations

2. Not backported:a. NUMA scheduling

b. CPUFreq changes

Work in progress

1. Smoke testing in LAVA CI on Pandaboard/TC2

2. EAS-specific functional testing

Next steps

1. Establish a cadence to maintain the backport tree.

2. Backport new development (sched-cpufreq, sched-idle).

3. Help member company merge the EAS enhanced LTS

with own platform support and incorporate their

feedback into further development.

Questions?

Linaro Virtualization

Eng. TeamCore Development Group

KVMby Christoffer Dall

Recent accomplishments

1. Guest UEFI support (from LEG)

2. Guest migration

3. Dirty Page Logging

4. GICv3 support

5. Fixes and improvements

Work in progress

1. VM Spec compliance (UEFI, PCIe, hotplug, ACPI)

2. Guest Debug and gdbstub support

3. Platform device passthrough

4. IRQ Forwarding

5. Performance Monitors Unit (PMU) support

Next steps

1. Improved test infrastructure

2. Performance Measurements and optimizations

3. Cross CPU-type support (big.LITTLE systems)

4. PCIe passthrough

5. Leveraging ARMv8.1 improvements

QEMUby Peter Maydell

Recent accomplishments

1. Android Emulator (64-bit support, VirtIO, much closer to

upstream QEMU than the “classic” emulator).

2. TrustZone emulation (32-bit).

3. Emulation of debug architecture (breakpoints,

watchpoints, single stepping).

Work in progress

1. TCG multithreading: better performance when

emulating SMP guests (work by GreenSocs and others).

2. PCI/PCIe support within VMs (by SUSE).

3. Further TrustZone work: AArch64, peripherals (GIC)

Next steps

1. Support the in-kernel GICv3 provided by KVM

2. Fully emulated GICv3

3. Android Emulator with OPTEE prototype

4. Threading support for user-mode emulation

XENby Julien Grall and Parth Dixit

Recent accomplishments

1. AMD Seattle Support

2. Prototype of Xen on ACPI

3. UEFI booting

4. Xen 4.5 released in January

Work in progress

1. Xen on ACPI upstreaming

2. ACPI tables for SMMU (IORT), Xen, and more

3. In-guest UEFI

4. Platform device passthrough

5. Big Endian guest support

6. Improving support for existing ARM SoCs

Next steps

1. PCI Passthrough

2. GICv2m

3. Save/restore and live-migration

4. 64k pages guests support

5. Performance Monitors and Debug Architecture Support

Questions?

Other topicsCore Development Group

jic

the “green-on-black”

JIRA client

by Serge Broslavsky

jic | recent accomplishments

1. CLI porcelain mode

2. Basic issue creation / editing support

3. Keyring support for storing passwords

(first contribution from outside Linaro!)

4. Offline mode

5. TBA

jic | work in progress

1. Full support for issue creation / editing

2. Reporting framework

3. Templating framework for output

4. Proper porcelain command set (at HKG15)

5. Engineer’s weekly report (at HKG15)

jic | next steps

1. Proper documentation: man pages, wiki

2. Reports according to different

stakeholder’s needs

3. Issue lists

4. Offline editing

5. TBA

Board farm for

upstream kernel Testingby Kevin Hilman

Background

● Lots of ARM platforms, boards● Easy to break other platforms● Not much upstream testing● Needed early detection and

warning of problems● Target audience: ARM platform

maintainers

What works● Personal board farm: 50 boards, 19 unique

SoC types (and growing)

● automatic build/boot testing for upstream

kernel trees

● 140+ boot tests per kernel build

● report summary to mailing list: [email protected]

● bisect/report regressions to developers,

maintainers

In Progress and Coming Soon● Collaboration with Linaro LAVA Team

● Pushing results into database

● Web dashboard/API for results, log, searches○ See: LAVA Team “Upstream Kernel CI” talk

● Support for multiple board farms

● running/reporting for arbitrary test suites○ in-kernel: OF_SELFTEST, kselftest; external: LKP, LTP, etc.

● Advanced search/query

● Automated bisection of build and boot failures

Questions?

Presented by

Date

Event

What is Linaro working on?

Core Development GroupCore Engineering

Linaro

Core Development developers

Monday Feb 9th

Linaro Connect HKG15