HKG15-104: What is Linaro working on - core development lightning talks
Transcript of HKG15-104: What is Linaro working on - core development lightning talks
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