Status of Embedded Linux & CELF Plenary Tim Bird Sony Corporation CE Linux Forum Architecture Group Chair Outline Kernel Highlights CELF Technology Watch List Other news Status Resources CELF Information Kernel Highlights 2.6.24 highlights Coming in 2.6.25 Interesting patches on the horizon 2.6.24 Kernel highlights Kernel markers LTTng may be coming soon… Security modules framework was removed PM Quality of Service (QOS) Coming in 2.6.25 Here are a few things that made the merge window Kpagemap Latency measurement API Matt Mackall's patches for fine-grained memory instrumentation More on this later Support for LatencyTop See http://lwn.net/Articles/266153 Smack - simple mandatory access control Need to see if it can makes sense to use in embedded Interesting patches Here are a few things that appear to be coming Latency trace system Compiler instrumentation of kernel functions (gcc -mcount) Support for multiple tracers Steven Rostedt's isolation and generalization of RTpreempts latency-trace system Mem_notify Allows processes to avoid the OOM killer by responding to events and shrinking memory usage voluntarily See http://lwn.net/Articles/266361/ Technology Watchlist Review Technology Watch List CE Linux Forum maintains a list of technologies that we are "watching" Things we are interested in Kind of like the Kernel Weather Forecast, but with focus on embedded List is reported on and updated at CELF meetings New page is on elinux wiki: http://elinux.org/Technology_Watch_List We are deprecating the CELF wiki page. Page is out-of-date today, due to web site crash Watchlist review Linux-tiny Kpagemap SquashFS AXFS LogFS LTTng SystemTap KFT Kernel trace system Printk-times arch support App Armour Tomoyo Linux Powertop PM QOS Userspace IO Kernel HOWTO document translations Libdlna Watchlist detail - Size Linux-tiny Kpagemap CELF contracting with free-electrons (Michael Opdenacker - current Linux-tiny maintainer) Some patches being mainlined by Thomas Petazzoni See http://elinux.org/Linux_Tiny_Patch_Details Made 2.6.25 merge window!! CELF funded this work! Bloatwatch 2.0 Matt Mackall just released Bloatwatch 2.0 Tool to show kernel size regression (and to investigate size problems) Kpagemap Can show details about every allocated (and virtual) page on the system Introduces PSS and USS size metrics PSS = Proportional Set Size USS = Unique Set Size Resources: ELC presentation http://selenic.com/repo/pagemap/raw-file/tip/memoryprofiling.html LWN.net article: http://lwn.net/Articles/230975/ Visualization tools: http://selenic.com/repo/pagemap Watchlist detail - File systems SquashFS AXFS LogFS UBIFS SquashFS Compressed read-only file system, with smaller compression than CramFS Latest release is 3.3, released Feb 5, 2008 Not mainlined. Last attempt was several years ago. Philip Lougher was planning to do it on 5th anniversary of project, but injured his hand Any assistance you can give to Philip is appreciated!! AXFS Advanced XIP file system Can profile applications, and only use XIP on some blocks Allows for fine-grained control over how much flash vs. RAM is used for an application set Last mainline attempt was summer, 2007 Jared said at ELC Europe (Nov, 2007) that he might try another mainline attempt soon. LogFS New flash filesystem to solve scalability problems with JFFS2 Author is Jörn Engel LogFS keeps filesystem meta-data on flash instead of in memory Does not need to read lots of meta-data on mount This reduces mount time (and system boot time) But, it has some outstanding problems See Jörn's presentation LogFS - Status See Jörn's talk Not mainlined Work is progressing Since mid January LogFS does write-back caching of metadata, for a big performance boost CELF is paying for work on the filesystem UBIFS - Status File system build on UBI (flash block) instead of block layer Recently submitted for mainline inclusion by Nokia http://lwn.net/Articles/276025 http://www.linuxmtd.infradead.org/doc/ubifs_whitepaper.pdf Watchlist detail - Tracing LTTng (and Markers) SystemTap Kernel Function Trace (KFT) Printk-time arch support LTTng LTTng Status Markers infrastructure mainlined in 2.6.24 Next to mainline is actual LTTng core Markers Infrastructure in kernel for static instrumentation Kprobes are for dynamic instrumentation Goal is very low overhead when not in use One compare, using immediate value No memory access or cache/TLB usage issues There's a new system to replace immediate values in kernel code, while kernel is running!! Other Tracers and instrumentation SystemTap Nice system, but compilation step was not cross-compile aware Lineo Solutions demonstrated support for cross-execution here! More work needed for other platforms (e.g. Kprobes for MIPS) Kernel Function Trace Recent releases were broken on ARM CELF hired new maintainer - Nicholas McGuire New maintainer reports successful trace on MX31 processor Need to rationalize with System Trace Printk-times arch support Many platforms have bad timer resolution for printk times CELF have fixes they should mainline Watchlist detail - Security Tomoyo Linux LSM framework removed from kernel in 2.6.24 Has some impact on non-mainlined security systems App Armour LSM framework removed from kernel in 2.6.24 AppArmour group was let go from Novell See http://www.news.com/8301-13580_3-979614039.html Smack included in 2.6.25 kernel Watchlist detail - Security Embedded SE Linux Much progress recently See talks by Nakamura and Kohei Requires filesytem with xattrs Embedded configuration in as little as 700K Watchlist detail - power management Powertop Shows timers and power state durations PM QOS Need support for CPUIdle, in order to show C-state (power state) activity for non-Intel processors Merged in 2.6.24 Wolfson voltage regulator stuff Watchlist - RealTime RT-preempt Ktimers was mainlined in 2.6.21 Still working on ports to various platforms Remaining large pieces to mainline: Threaded interrupts Sleeping spinlocks Latency tracer Latency tracer is actively being pushed to mainline CELF has worked on publishing porting and test results, and documenting tuning and testing "best practices" Watchlist detail Miscellaneous Kernel HOWTO document translations Chinese, Korean and Japanese translations are mainlined Libdlna Supports all profiles except MPEG-4 and WMV Watchlist update Need to recover status into watchlist page after elinux.org web site crash Should be done in a few weeks Goal is to provide continuously updated information on key projects Additional Stuff Just a few items CELF members are working on Stuff not on official watch list Organized by technology area Bootup Time Embedded bootchart Toshiba work - See Jamboree18 System Size SLUB vs. SLAB vs. SLOB Both SLUB and SLOB have recently received some updates. SLUB is now the default memory allocator for the kernel SLOB vs. SLAB size comparison On x86, 128M system SLOB yields 180K more runtime memory than SLAB On ARM 32M system But people aren't entirely happy with it SLOB yields 150K more runtime memory than SLAB Still a big desire to see SLOB results and usage experience Licensing Noise over GPL 3.0 has died down Kernel will stay GPL 2.x for now glibc 2.6.1 Release note The 2.6 and 2.6.1 releases of the GNU C Library are licensed under the LGPL version 2.1, and GPL version 2.1 for the non-library programs included, or any later version. … We expect that the next nonbug-fix release of the C Library will migrate to a newer LGPL version. See http://sourceware.org/ml/libcannounce/2007/msg00001.html Graphics CELF interested in GstOpenMAX OpenMax is a graphics framework API promoted by Khronos (with several large CE companies as members) GstOpenMax is an open source implementation of OpenMax on top of GTK Middleware DLNA CELF hosted the first ever open source DLNA summit, in Linz Austria CELF has donated several DLNA specifications to open source projects New dlna-dev mailing list In process of obtaining sample hardware for various DLNA projects DLNA summit #2 planned for ELC-Europe 2008 Mobile Phone stack wars Android LIMO Demo'ed and presented here Feb 4 - announced their Linux platform See LIMO press release http://www.limofoundation.org/press-releases/limo-pressreleases/limo-rolls-out-world-s-first-globally-competitivelinux-based-software-platform-for-mobile-devices.html New ARM Ultra-Mobile PC initiative: See http://www.linuxworld.com/news/2007/100407montavista-arm-linux-umpc.html?nlhtos=100507linuxalert1 Status Resources LinuxDevices.com LWN.net kernel pages http://lwn.net/Kernel/ Articles sorted by topic http://lwn.net/Kernel/Index/ Linux Weather Forecast http://www.linuxdevices.com/ http://www.linuxfoundation.org/en/Linux_Weather_Forecast CELF Technology Watch List page http://elinux.org/Technology_Watch_List Some CELF Information CE Linux Forum The CE Linux Forum (CELF) is focused on the advancement of Linux as an open source platform for consumer electronics devices. CELF History June 23, 2003 Founder: Panasonic, Sony Initial board members: Hitachi, Toshiba, Sharp, Philips, Samsung, NEC, IBM About 50 member companies, now CELF Basic Structure Board of Directors Marketing Group Architecture Group Technical Workgroup Technical Workgroup Membership by Geography 2% 31% Asia Europe United States 56% 11% Australia Membership by Industry 30% 40% Consumer Electronics Semiconductor Software 30% Technical Work Technical Workgroups Contract work Conferences Technical output Special Projects Open Source Education CELF Technical Working Groups Workgroups Audio, Video, Graphics Boot Technologies Digital Television Memory Management Power Management Real Time Security System Size Audio, Video, Graphics Mission: Help develop and enhance standard AVG layers for different profiles TV, handheld, etc. Previous Projects: Integration of DirectFB and UHAPI GNOME Mobile and Embedded launch DirectFB porting work Boot Technologies Mission: Reduce boot up time Recent Projects: LogFS support Application pre-linking XIP Digital Television Profile Mission: Help identify problem areas for DTV products, and fill gaps Recent Projects: DLNA open source project evaluation DLNA community developer support Sent DLNA specifications to community project leaders Hosting the DLNA summit (2) in Europe Memory Management Mission: Improve memory management systems of Linux, for embedded products Candidate Projects: NUMA for small systems Compressed cache evaluation Asymmetric nodes, variable page sizes SLUB/SLOB scalability and node affinity work Support for power-management control of memory extents Power Management Mission: Help reduce power usage Previous Projects: Contract work to produce and mainline Power Management framework elements Have hosted BOFs and a PM Summit PM Quality-of-service feature Real Time Mission: Enhance Real Time performance of Linux Recent Projects: RT-preempt patch validation "Realtime testing best practices" document Security Mission: Enhance security for embedded devices Projects: Hardware donation to Linux security project CELF member work: Embedded SELinux work System Size Mission: Reduce memory utilization Projects: System-wide memory profiling Linux-tiny revival Bloatwatch funding Contract Work Contractors Matt Mackall Matt Locke Bill Traynor Michael Opdenacker Nicholas McGuire Jörn Engel Conferences Conferences overview Embedded Linux Conference (ELC) Ottawa Linux Symposium (OLS) Regional Jamborees ELC-Europe Japan trade shows Embedded Linux Conference Held April each year in San Jose, California Target audience is embedded Linux developers Is an open, community-oriented conference Not a trade show First conference with a focus on on embedded Linux This year is our fourth year Ottawa Linux Symposium Each year, CELF is a sponsor of the symposium CELF members gave several presentations and BOFs Hand out prizes, do demos, etc. Goal is to interact with other (non-embedded developers) and show them our issues Regional Jamborees Casual, one-day, one-track conferences held in regional areas Japan Regional Jamboree Held every other month Presentations and discussion in native language Content is translated to English, after the event Jamboree #20 wil be held next week These have great technical content See http://elinux.org/Events ELC Europe Planned for November 6,7 In Ede, The Netherlands Joint conference with NLUUG Call for sessions is already out Check your bag for a paper Technical Output Review of technical output Presentations and documents Patches Embedded Linux Wiki Documents on Public wiki Document type Total New or updated this year Wiki page 607 248 PDF 357 117 PowerPoint 97 25 Text file 91 47 Source archive 58 14 Patch file 78 8 1589 508 Total Patches Goal is always to push patches upstream CELF doesn't submit patches itself (except via its contractors) Linux-tiny RTC no-sync patches kpagemap Encourage CELF members to submit directly to mainline projects LTTng, Kprobes and SystemTap RT-preempt work Power Management Quality-of-Service Board support Special Projects Special Projects Embedded Linux Wiki Hardware donations Embedded Linux Wiki http://elinux.org/ what it looks like What elinux.org Is (and is not) A new resource for the whole embedded Linux community Mostly technical documents and information, accumulated over years Not a CELF-only site Not an encyclopedia Not just for CE companies or for CELF members. elinux.org and Wikipedia are complimentary Not a news site Site Status About 490 pages with real content ~540 uploaded files ~350 registered users ~3400 page edits 285,000 page views Currently showing a backup of content from February Content highlights Boot time reduction Memory reduction Processor docs CELF specifications: power management, multimedia etc. Hardware hacking Real-time Toolchains Products running Linux Companies involved with Linux Vendors, Semi-conductor, CE Product companies Events Hardware Donations Architecture Group donates hardware to community developers Example 1: Mobile phone to power management developer Example 2: Nokia tablet to security analysis tool author Working on a bunch of hardware for DLNA developers Open Source education White papers, articles and talks about why and how to participate in the Linux community Closing Remarks It was nice to see you all this year. Keep up the good work. Linux is destined to dominate the embedded market! Let's have fun doing it! Thanks Questions? Questions and Answers