Status of Embedded Linux Status of Embedded Linux March 2013 Tim Bird Architecture Group Chair LF CE Workgroup 1.

Slides:



Advertisements
Similar presentations
Network II.5 simulator ..
Advertisements

Parallel Virtual Machine Rama Vykunta. Introduction n PVM provides a unified frame work for developing parallel programs with the existing infrastructure.
Module 13: Performance Tuning. Overview Performance tuning methodologies Instance level Database level Application level Overview of tools and techniques.
Using MapuSoft Instead of OS Vendor’s Simulators.
Processes Management.
MHK200 Module 1: Introduction to Windows CE. MHK200 Overivew Windows CE Design Goals Windows CE Architecture Supported Technologies, Libraries, and Tools.
Media Player for the i.MX31 Advanced Embedded Systems Architecture Class Project May 14, 2011 Rafael Castro Ryan Ugland Carlos Cabral.
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
Architectural Support for Operating Systems. Announcements Most office hours are finalized Assignments up every Wednesday, due next week CS 415 section.
Memory Management 2010.
Embedded Real-time Systems The Linux kernel. The Operating System Kernel Resident in memory, privileged mode System calls offer general purpose services.
RESOURCE MANAGEMENT System Resources. What resources are managed in a computer system?
An Introduction to Device Drivers Sarah Diesburg COP 5641 / CIS 4930.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
Debugging techniques in Linux Debugging Techniques in Linux Chetan Kumar S Wipro Technologies.
Computer Organization
hardware and operating systems basics.
Hands-On Microsoft Windows Server 2008
1 SAM & OLAR. 2 Upon completion of this module, you will be able to: List significant changes to system administration tasks in HP-UX 11i Determine system.
CELF Contract Work Update on CELF Projects Tim Bird - CELF AG Chair.
TRACEREP: GATEWAY FOR SHARING AND COLLECTING TRACES IN HPC SYSTEMS Iván Pérez Enrique Vallejo José Luis Bosque University of Cantabria TraceRep IWSG'15.
Beagle Board Fast Boot Hui Chen Keji Ren Dec 10 th, 2009 EE382N-4 Project.
Guide to Linux Installation and Administration, 2e1 Chapter 2 Planning Your System.
Porting Operating Systems Phan Duy Hùng (PhD) ES Lecturer – Hanoi FPT University.
Guide to Linux Installation and Administration, 2e1 Chapter 10 Managing System Resources.
CELF Project and Conference Information Tim Bird CELF Architecture Group Chair.
Computer Emergency Notification System (CENS)
Chapter 1 : The Linux System Part 1 Lecture 1 10/21/
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Unit - VI. Linux and Real Time: Real Time Tasks Hard and Soft Real Time Tasks Linux Scheduling Latency Kernel Preemption Challenges in Kernel Preemption.
Linux Architecture Overview 1. Initialization Uboot – hardware init, loads kernel Kernel – remaining initialization, calls “init” Init – 1 st process,
02/09/2010 Industrial Project Course (234313) Virtualization-aware database engine Final Presentation Industrial Project Course (234313) Virtualization-aware.
Mark E. Fuller Senior Principal Instructor Oracle University Oracle Corporation.
Android. Basic Architecture Linux Kernel Libraries Applications Android Runtime Application Framework.
An Introduction to Device Drivers Ted Baker  Andy Wang COP 5641 / CIS 4930.
UNIX Unit 1- Architecture of Unix - By Pratima.
Intel Open Source Technology Center Lu Baolu 2015/09
CSC414 “Introduction to UNIX/ Linux” Lecture 2. Schedule 1. Introduction to Unix/ Linux 2. Kernel Structure and Device Drivers. 3. System and Storage.
Full and Para Virtualization
Processor Structure and Function Chapter8:. CPU Structure  CPU must:  Fetch instructions –Read instruction from memory  Interpret instructions –Instruction.
4P13 Week 12 Talking Points Device Drivers 1.Auto-configuration and initialization routines 2.Routines for servicing I/O requests (the top half)
Proposal for an Open Source Flash Failure Analysis Platform (FLAP) By Michael Tomer, Cory Shirts, SzeHsiang Harper, Jake Johns
UDI Technology Benefits Slide 1 Uniform Driver Interface UDI Technology Benefits.
By Adam Reimel. Outline Introduction Platform Architecture Future Conclusion.
© Sony Corporation of America 1 of 17 Kernel Summit 2009 End User Panel Pain Points for Using Linux By Tim Bird Sony Corporation.
Embedded Real-Time Systems Processing interrupts Lecturer Department University.
Reverse Engineered Architecture of the Linux Kernel Kristof De Vos.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
CHAPTER 2 COMPUTER SOFTWARE. LEARNING OUTCOMES At the end of this class, students should be able to:  Explain the significance of software  Define and.
Overview of today’s lecture Major components of an operating system Structure and internal architecture of an operating system Monolithic Vs Micro-kernels.
Matthew Locke November 2007 A Linux Power Management Architecture.
Timothy Kritzler and Joseph Mintun Sponsor: Martin Engineering, Illinois Advisors: Dr. Malinowski and Dr. Ahn Bradley University Electrical and Computer.
NAND Chip Driver Optimization and Tuning
Evaluation of Advanced Power Management for ClassCloud based on DRBL Rider Grid Technology Division National Center for High-Performance Computing Research.
By Ganesan Alagu Ganesh Feb 26, 2008
Processes and threads.
By Ganesan Alagu Ganesh Feb 21, 2008
GPU Memory Details Martin Kruliš by Martin Kruliš (v1.1)
Chapter 9: Virtual Memory
IM-pack: Software Installation Using Disk Images
Penguin Weight Watchers
Introduction to the Kernel and Device Drivers
An Introduction to Device Drivers
Chapter 9: Virtual-Memory Management
Page Replacement.
Linux Architecture Overview.
Chapter 3: Processes.
Chapter 13: I/O Systems.
Overview of System Development for Windows CE.NET
Chapter 13: I/O Systems “The two main jobs of a computer are I/O and [CPU] processing. In many cases, the main job is I/O, and the [CPU] processing is.
Presentation transcript:

Status of Embedded Linux Status of Embedded Linux March 2013 Tim Bird Architecture Group Chair LF CE Workgroup 1

Outline Kernel Versions Technology Areas CE Workgroup Projects Other Stuff Resources 2

Outline Kernel Versions Technology Areas CE Workgroup Projects Other Stuff Resources 3

Kernel Versions Linux v3.3 – 18 Mar 2012 – 74 days Linux v3.4 – 20 May 2012 – 63 days Linux v3.5 – 21 July 2012 – 62 days Linux v3.6 – 30 Sep 2012 – 71 days Linux v3.7 – 10 Dec 2012 – 71 days Linux v3.8 – 18 Feb 2012 – 70 days Linux v3.9-rc1 – 3 Mar 2012 Predict Linux v3.9 on April 30 4

Linux v3.3 ARM large physcial address extensions See Catalin Marinas talk at ELC Europe 2011 ALSA support for compressed audio New “charger manager” subsystem Can partially resume to poll battery and re- suspend Android patches in staging This is really cool 5

Linux v3.4 Universal Flash Storage host controller drivers See Documentation/scsi/ufs.txt Common clock framework Unifies handling of subsystem clocks See Documentation/clk.txt HSI (High-speed synchronous serial interface) framework Used for communication between CPU and cellular modem engines 6

Linux v3.4 (continued) DMA buffer sharing API Remoteproc subsystem Allows for control of other CPUs through shared memory Rpmsg is a new mechanism for communicating with other CPUs (running non-Linux) See Documentation/remoteproc.txt and rpmsg.txt 7

Linux v3.5 Kernel log rework Structured printk (new format), with tags Support for writing NFC drivers Integration of ramoops and pstore Part of work to support Android ram_console Uprobes User-space probes Autosleep 8

Linux v3.6 Android RAM console functionality integrated into pstore CANFD support for CAN protocol CAN with flexible data rate LED oneshot mode Sysfs interface for certain one-time LED/gpio manipulations "Suspend to Both" Create resume image both in RAM and on disk If power dies during suspend, disk image can be used to resume 9

Linux v3.7 ARM multi-platform support See ARM 64-bit support (Aarch64) Cryptographically signed kernel modules See Perf trace (alternative to strace) Allows intermingling kernel trace events with syscall events Runtime power management for audio Kerneldoc system can output in HTML5 format 10

Linux v3.8 F2FS – flash-friendly file system See New thermal governor subsystem Memory control group support for accounting for kernel memory usage Stack and slab accounting and limits Cpuidle support for big.LITTLE 11

Linux v3.9 (probable) Ftrace snapshots Grab a snapshot of a running trace without stopping PowerPC support for transactional memory CONFIG_EXPERIMENTAL=y And should be gone soon 12

Things to watch Android features Volatile ranges ARM FIQ -> KDB glue big.LITTLE SOC support for ARM (refactoring) 13

Outline Kernel Versions Technology Areas CE Workgroup Projects Other Stuff Resources 14

Bootup Time Systemd in embedded Systemd starts services and daemons on- demand Angstrom uses systemd s-into-angstrom-syslog-and-systemd/ People either love systemd or hate it, or both Would be nice to get some boot time and size numbers to evaluate this 15

Graphics Ubuntu announces MIR New display server that leverages Android GPU drivers Replaces X, across multiple form factors (desktop, tablet, phone) See online.com/open/news/item/Canonical-reveals- plans-to-launch-Mir-display-server-Update html 16

Graphics (cont.) Lots of work around memory management between kernel, user-space and GPU Android has /dev/ion A unified approach to buffer management and sharing between display, GPU, camera, codecs, etc, new in Ice Cream Sandwich Replacement for pmem Mainline has Contiguous Memory Allocator (CMA) and dma-buf - CMA - dma-buf 17

File Systems F2FS – Samsung Flash-friendly filesystem Mainlined in Linux version 3.8 Log-structured, with lots of tweaks E.g. hot vs. cold data separation See CE WG project to analyze filesystem performance on eMMC More about this later 18

Power Management Autosleep Wakelock-compatible solution by Rafael Wysocki Rafael: “This series tests the theory that the easiest way to sell a once rejected feature is to advertise it under a different name” Mainlined in v3.5 Power-aware scheduling: 19

System Size Kernel size Ezequiel Garcia's trace_analyze for kernel memory analysis (showed previously) See talk at ELC 2013 Link-Time Optimization (LTO) Hopefully showing up in mainline soon Cooperative memory relinquishment Volatile Ranges Lexmark work (membroker and ANR malloc) See talk at ELC 2013 – "SystemWide Memory Management without Swap" 20

System Size (cont.) olibc – bionic libc Has good features from Android, and is smaller and more configurable than glibc See ELC 2013 talk by Jim Huang Kconfig for eglibc Ability to configure parts of libc to use See ELC 2013 talk by Khem Raj glibc 2.11 : /lib/libc.so → 1,208,224 bytes uClibc : /lib/libuClibc.so → 424,235 bytes bionic 2.1 : /system/lib/libc.so → 243,948 bytes libc-2.17.so reduced from 1.2M -> 830K ld-2.17.so reduced from 128K -> 120K libm-2.17.so reduced from 610K -> 580K 21

Link Time Optimization See Newer gcc (4.7) supports adding extra meta- data about routines (gimple) at compile time Linker can now do whole-program optimization at link time Andi Kleen has 74 patches that add support to the Linux kernel for LTO feature Mark functions as 'visible' to avoid dead-code elimination Adjust compilation flags to be consistent Add dependencies to avoid conflicts for features which can't conform to LTO requirements (ftrace) 22

Linux Foundation CE Workgroup / Embedded Linux Conference 2013 Technical Showcase What is demonstrated What was improved Source code or detail technical information availability Hardware Information Possibly the most boring demo ever Gcc has compile-time option to do link- time optimization Andi Kleen created patches to support this compiler option He demonstrated on an Intel CPU This is first demonstration of LTO kernel running on ARM World's first, that I know of !!! LTO supports whole-program optimization, at final link time Slow link step, but good code optimizations gcc Link-Time-Optimization of ARM Linux kernel TI panda board mem=24M git://github.com/andikleen/linux-misc Kernelnon-ltolto Compile time1m58s3m22s Image size5.85M5.46M Meminfo Total17804K18188K Meminfo Free10908K11260K LTP time System size and performance thrilling 6% reduction in image size (384K)

LTO (cont.) Cost: Longer kernel builds (extra 1.5 minutes) More memory during build (up to 9G required for allyesconfig) Subtle bugs from optimizations E.g. duplicate code elimination caused a pointer comparison failure Benefits: Size reduction – 380K (6%) on ARM Performance: Unknown 24

LTO (cont. 2) Why am I so excited about this? Opens new possibilities for automatic kernel reduction techniques It is not tractable to reduce kernel manually Whole system optimization is a critical part of automatic reduction Note: This work obsoletes -ffunction- sections Takes Linux-tiny in a whole new direction 25

Volatile Ranges Work by John Stultz Inspired by Android feature in ashmem Allows cooperation between the kernel and applications on "volatile" memory usage Overview: Application notifies kernel about re-claimable memory areas Not mainlined yet 26

Outline Kernel Versions Technology Areas CE Workgroup Projects Other Stuff Resources 27

CEWG Contract Work 2012 eMMC tuning Dynamic memory reduction Mainline FIQ debugger ConnMan support for WiFi direct Improve kexecboot Measure systemd and udev 28

eMMC tuning guide Description: This project analysed EXT3, EXT4, BTRFS and F2FS on a variety of block-based flash parts on a few different development boards Output is a document describing best practices for tuning Linux block-based filesystems for block-based flash filesystems Also, methods and scripts for filesystem testing Contractor: Cogent Embedded Status: work is almost complete Document should be available very soon 29

Dynamic memory analysis Description: Instrument and collect data on kernel dynamic memory allocations Make recommendations for areas where dynamic kernel memory usage could be reduced Contractor: Ezequiel Garcia Status: Use existing kmem_events (ftrace) infrastructure Some patches already accepted upstream New tool for visualization of kernel memory usage See See ELC 2013 talk 30

Drivers kmalloc 31

Linux kmalloc 32

Mainline FIQ debugger Description: Add ARM FIQ glue code and integrate with existing kernel debugger Allows use of ARM FIQ (non maskable interrupt) to activate a kernel debugger Status: Developer worked on this independent of CE WG Now called "NMI KGDB/KDB debugger" Not just ARM FIQ glue code. The generic driver is now drivers/tty/serial/kgdb_nmi.c Further development (i.e. ARM-specific bits, and restricted mode) is in the following GIT tree: git://git.infradead.org/users/cbou/linux-nmi-kdb.git 33

ConnMann WiFi direct Description: Add support for WiFi direct to ConnMann wireless connection manager Contractor: contractor was acquired Status: Considering project for

Improve kexecboot Description: Make improvements to kexecboot booloader Support load from network UI improvements Contractor: Yuri Bushmelev Status: Should be done in May 35

Measure systemd and udev Description: Measure the overhead and performance of system and udev, as used in embedded systems Contractor: became unavailable Status: considering project for

Other Projects Long Term Support Initiative (LTSI) Hardware fund 37

Long Term Support Kernel for Industry LTSI 3.4 is available now Many presentations available on status See ELC 2013 presentation by Hisao Munakata See ELC 2013 presentation by Tzugikazu Shibata Program for free hardware for LTSI kernel testing 38

Hardware Rise of cheap hardware Lots of < $200 boards Raspberry Pi - $35 New BeagleBone - ?? (<$79) Lots of people have mobile phones or tablets No need for CE WG hardware program Anyone can learn embedded Linux FYI – code.org – new site to teach programming 39/53

Outline Kernel Versions Technology Areas CE Workgroup Projects Other Stuff Resources 40

Other Stuff Tools Build Systems Events Miscellaneous 41

Tools Cortex Coredump filter Generates sparse coredump See ELC 2013 presentation by Tristan Lelong "Debugging for production systems" Debugging techniques Good overview by Kevin Dankwardt at ELC 2013 "Survey of Linux Kernel Debugging Techniques" Testing frameworks "Kernel Testing Tools and Techniques" BOF by Matt Porter 42

Build Systems Yocto project Lots of talks at ELC (and previous ELCs) Sean Hudson – good introduction tutorial Saul Wold – current status Tutorials now online Buildroot still hanging in there Android use in non-CE embedded Headless android 43

Events ELC/Android Builders Summit – Feb 2012 LinuxCon Japan – May Japan Jamborees LinuxCon US September 2012 – New Orleans Embedded Linux Conference Europe 2013 October 21-23, 2013 – Edinburgh, Scotland Embedded Linux Conference 2014 April, 2013 – San Jose 44

eLinux wiki Web site dedicated to information for embedded Linux developers The wikipedia of embedded linux! Hundreds of page covering numerous topic areas: bootup time, realtime, security, power management, flash filesystem, toolchain, editors Working on new wiki projects: Video transcription project Tech Zones 45

Miscellaneous Has use of open source licenses peaked? Interesting essay on moving to more free licenses (specifically, public domain) Argument is that now individuals and companies will contribute even if license doesn't require it Most developers understand benefits time-to-stop-using-open-source-licences html 46

Kernel Versions Technology Areas CE Workgroup Projects Other Stuff Resources 47

Resources LWN.net If you are not subscribed, please do so Kernel Newbies eLinux wiki - Especially for slides Celinux-dev mailing list 48

Thanks! 49