290 likes | 297 Views
This update provides information on the status of Embedded Linux, including recent kernel versions, technology areas, embedded distributions, and useful resources.
E N D
Embedded Linux Update June, 2010 Status of Embedded Linux Tim Bird CELF Architecture Group Chair
Outline • Kernel Versions • Technology Areas • Embedded Distributions • Resources
Kernel Versions • Linux v2.6.30 – 10 June 2009 • Linux v2.6.31 – 9 Sep 2009 • Linux v2.6.32 – 2 Dec 2009 • Linux v2.6.33 – 24 Feb 2010 • Linux v2.6.34 – 16 May 2010 • 5 kernels in 11 months • Linux v2.6.35 merge window just closed • 2.6.35-rc1 – 30 May 2010
Linux v2.6.34 • LogFS • Asynchronous Suspend/Resume • Memory threshold notifications for cgroups
Linux v2.6.35-rc1 (expected) • Ramoops driver • Records oops to persistent RAM so it can be recovered later • Maybe obsoletes pramfs? • http://lwn.net/Articles/377890 • Tracepoint size reduction • Shrinks size of kernel with tracepoints turned on by about 100K • http://lwn.net/Articles/386331 • Section renaming to support –ffunction-sections
Patches to watch • Speed up symbol resolution during module loading • Sorts symbol table and avoid linear lookup cost per symbol when loading a module • Developer, Alan Jenkins, reports saving 20% of time on coldboot • Depends on modules being loaded • Did not make it into 2.6.33 • Alan said he’ll try to mainline it again
Patches to watch (cont.) • Suspend blockers • Android opportunistic suspend patches (successor to wake locks) • More on this later
Technology Areas • File Systems • Power Management • Real-time • System Size • Tracing
File Systems • SquashFS • Patches for LZMA support were submitted to kernel mailing list in late 2009, but they missed the merge window • See http://lkml.org/lkmlk/2009/12/10/456 • Linus wants lzma library access refactored • LGE (Chan Jeong) recently submitted patches for LZO support • Phillip said he'd mainline them • See http://old.nabble.com/-PATCH-1-2--Squashfs:-add-LZO-decompression-support-to28591383.html
File systems (cont.) • UBIFS • Toshiba has reported on performance of this • LGE says they are using UBIFS in product, in part because it boots faster than YAFFS2 • CELF has contracted with Free Electrons to measure UBIFS mount times and find problem areas
File systems (cont.) • LogFS • Log-structured file system which keeps meta-data on flash • Mounts really fast (no need to build in-memory tables to start accessing) • http://www.logfs.org/ • Also Documentation/filesystems/logfs.txt • Mainlined (after much work) in 2.6.34 • CELF supported this a few years ago • Introduction • http://lwn.net/Articles/234441/ • Announcement of mainlining • http://lwn.net/Articles/377741
File systems (cont.) • LogFS is new, and it really needs testing • Please try it out and report back!
Power Management • Suspend Blockers submission by Google • Successor to wake locks • Lots of discussion – no resolution yet • See http://lwn.net/Articles/388131 • and http://lwn.net/Articles/389407 • And especially http://lwn.net/Articles/390392 • Last thing I saw were counter-proposals to utilize PM QOS system to push some “suspend blocker” functionality outside of kernel • See http://lkml.org/lkml/2010/5/29/77 for Alan Stern's proposal • See http://lkml.org/lkml/2010/5/30/83 for Mark Gross' proposal
Real-time • Work continues on improving RT performance on embedded platforms • General work lately consists of removing Big Kernel Lock • CELF considered funding this, but it looks like it will happen without a funded project • See http://lwn.net/Articles/380174/ • Frank Rowand has good information about using RT-preempt • See Frank’s presentation from ELC 2010: • http://elinux.org/images/b/be/Real_time_linux_failure.pdf • More info coming to eLinux wiki soon!
System Size / Memory • Compression • LZO kernel image compression • It was merged in 2.6.33 • Ramzswap – (aka compcache) • made the 2.6.33 merge window • See http://lwn.net/Articles/334649
System Size / Memory (cont.) • Memory threshhold notifications in cgroups: • Can use cgroups to get notifications of memory problems on a per-app or app-group basis • Merged in 2.6.34 • http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=2e72b6347c9459e6cff5634ddc815485bae6985f • See Documentation/cgroups/memory.txt
System Size / Memory (cont.) • New allocator “SLEB” was proposed • SLEB was rejected • Linus says he won't take a new allocator until another one is removed • http://lwn.net/Articles/389402/ • New plan is to incrementally improve SLAB, if possible, while trying to avoid regressions • http://thread.gmane.org/gmane.linux.kernel.mm/48515
Tracing • Ftrace • Proposal to merge ftrace and perf ring-buffer code • Ingo not very enthusiastic • Lots of code may move from ftrace to perf • http://lwn.net/Articles/388978/ • Trace-cmd and kernelshark • New command line and GUI tools • See presentations from ELC and Collab summit • Perf • Support for data interpretation on a different machine • “perf archive” • CELF project to create a trace format data standard
Android • Android 2.1 SDK (Eclair) released (28 Oct 2009) • Number of devices still increasing • Non-phones starting to appear (tablets and TVs) • Google TV / Sony Internet TV • Android patches removed from mainline kernel (2.6.33) • Greg Kroah-Hartman talked about this at ELC • http://elinux.org/images/c/ca/Gregkh-android-presentation-kernel.pdf • Google and kernel developers had private meeting at Collaboration Summit, and hashed out some issues
Android (cont.) • Froyo (v2.2) features discussed at Google I/O • Dalvik now has a Just-In-Time compiler • “Froyo runs apps up to 450% faster” (really?) • Actual Google I/O demo of popular game looked about 40% faster (in terms of frames per second) • Still very good • Flash support • WiFi tethering • Batch app upgrade • Faster Javascript
Meego • Moblin + Maemo = Meego • Intel and Nokia joining forces to create single embedded distribution • See http://meego.com/ • Lots of stuff about this at ELC and Collab summit • Early (partial) release was March 31 • Full release of Meego 1.0 was May 25
Ubuntu • Ubuntu netbook • Now working towards targeting ARM • Some rumors of them support Android apps • Canonical is working to support appliances • Have new “Unity” netbook interface • “Ubuntu Light” targeted at instant-on
WebOS • HP buys Palm and now owns WebOS • OS used on current Palm Pre • Expected to ship on tablets by end of year • I haven’t seen an WebOS opensource site
New Consortium • Linaro • http://www.linaro.org/ • Focused on technologies and improvements of Linux for ARM platforms • Seems like “CELF for ARM” • It’s not entirely clear exactly what they are going to do
Resources • LWN.net • http://www.lwn.net/ • If you are not a subscriber, please do so • This is an invaluable community resource that needs your support • Prices just went up a bit ($7 per month vs. $5 per month for professional subscription) • eLinux wiki • http://elinux.org/ • Linux-embedded mailing list • http://vger.kernel.org/vger-lists.html#linux-embedded