Posts Tagged ‘file system’

UBI Fastmap – ELCE 2012

January 17th, 2013 No comments

Thomas Gleixner, Linux kernel programmer at Linutronix, talks about UBI flash management layer, and fastmap implementation to speed up boot times at the Embedded Linux Conference Europe, on November 7, 2012.


UBI is a flash management layer in the Linux kernel designed to handle especially the shortcomings of NAND flash. UBI itself has the requirement to scan the full flash at boot time. With flash sizes becoming larger and larger this can take quite some time. A recent development implemented fast mapping functionality which is designed to put an upper bound on the number of flash eraseblocks to scan. This allows faster boot times without sacrifying the robustness of UBI. This talk gives an overview of the UBI fastmap design and looks at costs and benefits.


The talk provides an overview of UBI and its shortcomings, and explains UBI fastmap implementation in details showing it provides significant speedup proportional to the flash size. UBI fastmap has been merged in Kernel 3.7.

You can also download the presentation slides for this talk.

F2FS – A New Flash File System for Mobile Devices – ELCE 2012

January 15th, 2013 No comments

Joo-Young Hwang, principal engineer at Samsung, presents F2FS (Flash-Friendly File System), a new file system designed for storage in mobile devices at the Embedded Linux Conference in Barcelona, Spain, on November 5, 2012.


Recent mobile devices adopt various flash storages as a primary storage. File system support for those flash storages is a must for flash device performance and lifespan. I will present a new file system, called F2FS, designed for mobile flash storages. F2FS is designed considering the characteristics of the underlying flash storage which has flash translation layer (FTL). F2FS outperforms EXT4, which is a popular file system for Android phones, in most of benchmarks. I will describe motivation, design, and implementation of the file system, then show performance comparison data with EXT4. Target audiences are those who are interested in file system support for flash storages such as eMMC and SSD. Kernel and file system expertise helps but is not mandatory to listen to this talk.

F2FS vs EXT4 - Bonnie++ Benchmark Result DUT: Pandaboard with Linux 3.3 and 64GB eMMC with 12GB partition

F2FS vs EXT4 – Bonnie++ Benchmark Results
DUT: Pandaboard with Linux 3.3 running in a 64GB eMMC with a 12GB partition

The talk is divided into 4 sections:

  • Introduction – NAND flash memories (SSD, eMMC, SD card) and current file systems and memory management used.
  • F2FS Design Overview
  • Performance Evaluation Results – Ext4 vs F2FS on eMMC in Pandaboard (Linux) and Galaxy Nexus (Android).
  • Summary

You can also download the slides for this presentation. You can find more information on F2FS lwn article. F2FS has been added to Linux 3.6 and greater.

LinuxCon North America 2012 Schedule

July 26th, 2012 No comments

LinuxCon (North America) 2012 will take place on August 29 – 31, 2012 at Sheraton Hotel & Marina, in San Diego, California. The event will be co-located with the Linux Kernel Summit, the Linux Plumbers Conference, and CloudOpen 2012.

LinuxCon consists of 3 days of keynotes, business and developers related sessions as well as tutorials. There will be over 80 sessions and keynotes during those 3 days. I’ll highlight a few sessions that I find particularly interesting and related to embedded Linux, software development and ARM.

August 29

10:45 – 11:30Life After BerkeleyDB: OpenLDAP’s Memory-Mapped Database by Howard Chu, Symas

Abstract: OpenLDAP’s new MDB library is a highly optimized B+tree implementation that is orders of magnitude faster and more efficient than everything else in the software world. Reads scale perfectly linearly across arbitrarily many CPUs with no bottlenecks, and data is returned with zero memcpy’s. Writes are on average twenty times faster than commonly available databases such as SQLite. The entire library compiles down to only 32K of object code, allowing it to execute completely inside a typical CPU’s L1 cache. Backends for OpenLDAP slapd, Cyrus SASL, Heimdal, SQLite, and OpenDKIM have already been written, with other projects in progress.

10:45 – 11:30Is Android the New Embedded Linux? by Karim Yaghmour, Opersys

Abstract: Linux has been used in embedded systems for quite some time now. “Embedded” in fact represents a substantial part of Linux’s use. Yet, to this day, there’s no single definition of what “Embedded Linux” is. For all practical purposes, “Embedded Linux” remains a set of ad-hoc recipes for building embedded systems based on the Linux kernel; each such system requiring a separate API spec and license vetting. Android on the other hand is a shrink-wrapped embedded Linux distro that has a stable, consistent API, a growing developer community and ODM-friendly licensing. Will these benefits make Android the default building block for Linux-based embedded systems? If so, what does that mean for the wider embedded Linux community, and, for that matter, Linux itself?

11:40 – 12: 45Staying ahead of the multi-core revolution with GDB/CDT by Dominique Toupin, Ericsson

Abtract: These days multi-core chips are unavoidable, more executions needs to be done in parallel and problems become extremely difficult to debug. Upcoming GDB features will facilitate multi-core debugging: global breakpoints with kernel module, PTC sets debug control, target side thread/core bkp/tcp, auto-disabling breakpoints, detection of thread core affinity error, dynamic-printf. Furthermore, the amount of asynchronous data cannot be handled via the cmd line anymore. The Eclipse Multi-Core Debugging Work Group are thus developing the multicore visualizer, dynamic grouping of cores/processes/threads, pinning/cloning of debugging views, GDB events and are synchronizing with the GDB cmd line. In addition, existing multi-core features will be described e.g. non-stop, multi-process, reversible-debugging, tracepoint and LTTng UST markers. A must for anyone who has to debug multicore systems.

14:00 – 14:45LLVM-compiled Linux for the Real World by Bryce Adelstein-Lelbach, Center for Computation and Technology

Abstract: Why use Clang and LLVM to compile the Linux kernel? The proposed talk aims to answer this question by focusing on the application of the Clang/LLVM framework to real-world problems. First, Clang’s powerful ability to manipulate and analyze source code will be presented as a tool for detecting bugs and refactoring code. Then, the performance of Clang/LLVM will be considered, and benchmarks comparing GCC-compiled Linux and LLVM-compiled Linux will be shown. A handful of open-source Clang/LLVM examples (plugins and utilities) will be discussed during the presentation and made available for attendees to experiment with.

14:00 – 14:45 LTSI (Long-Term Stable Initiative) by Tsugikazu Shibata, NEC

Abstract: LTSI (Long-Term Stable Initiative) had been established October 2011 as an activity of CE Working Group of the Linux Foundation. LTSI will maintain Long term stable Linux kernel for use of Consumer Electronics industry to share common cost regarding and also help industry engineers to merge their patches into upstream. This talk will update latest status of LTSI project and discuss about next step such as how the development process going on and what version of Linux kernel will be maintained for long term stable use.

14:55 – 15:30Is Auto the new Android? Driving Innovation with Linux Platforms by Dave Gruber, Black Duck Software

Abstract: Like Android years ago, the automotive industry has started to standardize a core Linux-based platform. The question is: how will the auto industry learn from Android’s success and blossom into a thriving application platform where developers can participate and profit? In this session we will compare and contrast the future of the automotive platform with Android success, discuss the projects on the critical path to opening this new market opportunity, and provide tips on how you can participate early to maximize your involvement as the industry grows.

14:55 – 15:30LTTng 2.0: Tracing, Analysis and Views for Performance and Debugging by- Mathieu Desnoyers, EfficiOS Inc.

Abstract: LTTng 2.0 can be used with various tools which help digging through large amount of trace data, from high-level perspectives down to the details. This presentation will focus on the usability of LTTng, showing how the combined user-space and kernel tracers, high-level summary views such as LTTngTop, graphical analysis tools such as the Eclipse Linux Tools LTTng plugin, can be used to solve hard software problems. Target audience: anyone interested in understanding performance issues and developing on multi-core systems.

August 30

10:25 – 11:10Filesystem and Storage Performance by Chris Mason, Fusion-IO

Abstract: This talk will dive into storage and filesystem performance tuning. I’ll cover ways to find bottlenecks in the IO subsystems under a variety of workloads. Different benchmarking programs will be demonstrated along with ways to interpret the results.

10:25 – 12:05Image Processing on the Pandaboard using OpenCV and Kinect, Part I & II  by Jayneil Dalal, Vanderbilt University

Abstract: Nowadays, there are tons of interesting, mind blowing projects based on computer vision, Kinect etc. But the problem is that all of them are done on a computer which is not a portable system! So, commercializing such a project will be very difficult. In this talk, I will cover how to do image processing using the world’s most popular computer vision library, OpenCV on a highly portable ARM based development board called the Pandaboard. Then I will cover how to use the Microsoft Kinect with Pandaboard for advanced image processing related tasks. Almost all the technologies I will be using are open source.

13:30 – 14:15Design Challenges & Future of the Linux Wireless Stack by Johannes Berg, Intel

Abstract: Like any common code, the wireless stack needs to work with a lot of very different devices from different vendors. It hasn’t always done so very well with some drivers even having to work around some aspects of the stack. I’ll use a few recent examples to explain some of the differences between devices, the resulting challenges and changes but also to show the high level of cooperation between different vendors required to reach a common implementation. I’ll also talk about how we achieve that cooperation today and what I hope can be improved in the future.

14:25 – 15:10Open Hardware Tools: An Open Revolution by David Anders, Texas Instruments

Abstract: The emergence of the “Maker” community in the last few years has sparked a technology revolution, fueled by the open sharing of information within the fields of open hardware design and debugging tools. Ubiquitous, powerful, and low-cost micro-controllers have enabled a new breed of capable yet affordable logic analyzers and oscilloscopes. Not only are these types of tools now cost effective, but their creation provides great examples of how the open source model has the ability to positively impact a wide range of fields outside of the realm of software development. Most Linux developers at some point will have the desire to work with or debug electronic systems and devices. This presentation is intended to provide some experience with tools and projects that are open, or open friendly, for designing and debugging electronics projects.

14:25 – 15:10Linux on AArch64, the 64-bit ARM Architecture by Catalin Marinas, ARM Ltd.

Abstract: This presentation details the Linux kernel implementation on the new AArch64 architecture using the new instruction set, exception and memory models. The presentation will highlight the main changes from previous versions of the ARM architecture and corresponding Linux kernel support.  The presentation is aimed at Linux kernel developers and system programmers with an interest in the 64-bit ARM architecture. Some prior knowledge of Linux kernel architecture porting is assumed and general information about exception handling and MMU functionality will help. This session is important for people planning to work on AArch64 platforms.

August 31

11:00 – 11:45Yocto Project Overview and Update by David Stewart, Intel Corporation

Abstract: The Yocto Project is a joint project to unify the world’s efforts around embedded Linux and to make Linux the best choice for embedded designs. The Yocto Project is an open source starting point for embedded Linux development which contains tools, templates, methods and actual working code to get started with an embedded device project. In addition, the Yocto Project includes Eclipse plug-ins to assist the developer. This talk gives a walk-through of the key parts of the Yocto Project for developing embedded Linux projects. In addition, features will be described from the latest release of the Yocto Project, v1.2. The talk will include demos of some of the key new features such as the Build Appliance and Hob. At the end of the talk, developers should be able to start their own embedded project using the Yocto Project and use it for developing the next great embedded device.

11:00 – 12:40Editing with vi: Fundamentals, Part I & II by Aleksey Tsalolikhin, Vertical Sysadmin, Inc.

Abstract: Most people use about 10% of vi’s capabilities. Learn the other 90% and increase your speed and enjoyment in text editing. The course covers the history, background and design principles of vi; ALL the vi movement commands; many text alteration commands; and the vi command language syntax. Attendees must bring a laptop with “vi” on it for in-class exercises. No prior experience is required, but 20 year veterans of vi have come out raving how much they learned. vi is the usual editor on Linux systems, and you can save a lot of time by learning to use more of its core features.

11:50 – 12:40Linux in a UEFI Secure Boot World by Matthew Garrett, Red Hat

Abstract: The UEFI Secure Boot specification describes a mechanism for restricting the software a machine will boot to appropriately signed binaries. The Windows 8 hardware certification program requires that vendors implement and enable this feature by default. Taken at face value, this locks Linux out of the market. Thankfully, there are things we can do.
This presentation will cover the Secure Boot approaches available to the Linux community and describe the benefits and shortcomings. It will be relevant to admins (who need to know how to configure it) and developers (who need to know how it will affect their software), as well as the users who just want to know how their machines will be booting.

11:50 – 12:40Yocto Project & OpenEmbedded Community BoF by Jeff Osier-Mixon, Intel Corporation

Abstract: This BoF is an opportunity for LinuxCon attendees to meet and converse with developers working on the Yocto Project and OpenEmbedded. All are welcome, from newcomers to experienced developers with problems that need to be solved.

14:10 – 14:55Editing with vi: Advanced Topics, Part I & II by Aleksey Tsaloikhin, Vertical Sysadmin, Inc.

Abstract: This course builds upon the “Editing with vi: Fundamentals” course mentionned above, and covers more text alteration commands, indenting code/config blocks, editing multiple files simultaneously, copying between multiple files, saving partial files, using buffers and macros, powerful ed commands, and searching code. Anybody who uses vi would benefit from taking this class.

15:05 -15:50Linux in Space by Jim Gruen, SpaceX

Abstract: SpaceX is committed to providing the safest, most reliable and economical access to space.  During this talk, we will discuss how Linux supports a fast-moving space startup company, including running the spacecraft itself.

Those are just a few choices among over 80 sessions. You can check the full schedule to find out which sessions suit you best.

You can register to LinuxCon 2012 and CloudOpen 2012 online.

2012 Registration Rates:

  • US$400 through April 29 (Early Bird)
  • US$500 April 30th through July 28th (Standard)
  • US$600 thereafter (Late)
  • Student Registration is $100.

BTRFS The Next Linux File Systems

November 3rd, 2011 No comments

BTRFS (B-tree file system) is a GPL copy-on-write file system for Linux developed by Oracle and is expected to replace ext4 as the default file system in future Linux distributions.

Here are the main features of BRTFS (pronounced like Better FS):

  • BTRFS LogoExtend file system (264 max file size: 16 Exabytes)
  • Copy on write (COW) data and meta-data
  • Space efficient packaging of small file
  • Optional transparency compression (zlib/LZO)
  • Integrity checksumming (CRC-32C) for data and meta-data
  • Writable snapshots
  • Subvolumes
  • Online resize,  defragmentation, device management
  • Multiple device support (pool of storage)
  • Offline conversion from ext3 and ext4
  • Specialized log for fast sync and O_SYNC writes

BTRFS is included in the Linux kernel (since Linux 2.6.29) and can be enabled during installation of several distributions such as Fedora 15 and Ubuntu 10.10, but is not officially the default file system just yet.

To learn more about the internal of BTRFS you can watch the 30 minutes BTRFS training by Oracle / The Linux Foundation. You can also visit the official BTRFS page on Oracle OSS website.

At the administration level, AFAIK there are 2 commands to be used:

  • mkfs.btrfs – To format a drive to BTRFS or create a BTRFS image. (equivalent to mkfs.ext4)
  • btrfs – Utility to control BTRFS volumes and perform operations such as disk checking, getting volume information, resizing the volume, creating snapshots and more. You can read BTRFS manpage for details.

There are plenty of BTRFS command line examples at and Roy Keen’s Wiki provides an interesting comparison of ZFS, BTRFS and EXT-4 file systems.