The Price of Safety: Evaluating IOMMU Performance - Muli Ben-Yehuda, Jimi Xenidis, Michal Ostrowski, Karl Rister, Alexis Bruemmer, Leendert Van Doorn

IOMMUs, "IO Memory Management Units", are hardware devices that translate device DMA addresses to machine addresses. Isolation capable IOMMUs perform a valuable system service, preventing rogue devices from performing errant or malicious DMAs, thereby substantially increasing the system's reliability and availability. Without an IOMMU, a peripheral device could be programmed to overwrite any part of the system's memory. An isolation capable IOMMU restricts a device so that it can only access parts of memory it has been explicitly granted access to. Operating systems utilize IOMMUs to isolate device drivers; hypervisors utilize IOMMUs to grant secure direct hardware access to virtual machines. With the imminent publication of the PCI-SIG's IO Virtualization standard, as well as Intel and AMD's introduction of isolation capable IOMMUs in all new servers, IOMMUs will become ubiquitous.

IOMMUs can impose a performance penalty due to the extra memory accesses required to perform DMA operations. The exact performance degradation depends on the IOMMU design, its caching architecture, the way it is programmed and the workload. In this paper, we present the performance characteristics of the Calgary and DART IOMMUs in Linux, both on bare metal and hypervisors. We measure the throughput and CPU utilization of several IO workloads with and without an IOMMU and analyze the results. We then discuss potential strategies for mitigating the IOMMU's costs. We conclude by presenting a set of optimizations we have implemented and the resulting performance improvements.

Linux on Cell Broadband Engine status update - Arnd Bergmann

With Linux for the Sony PS3, the IBM QS2x blades and the Toshiba Celleb platform having hit mainstream Linux distributions, programming for the Cell BE is becoming increasingly interesting for developers of performance computing. This talk is about the concepts of the architecture and how to develop applications for it.

Most importantly, there will be an overview of new feature additions and latest developments, including:

Linux Kernel Debugging on Google-sized clusters - Martin Bligh, Mathieu Desnoyers, Rebecca Schultz

This paper will discuss the difficulties and methods involved in debugging the Linux kernel. Intermittent errors that occur once every few years are hard to debug ... but a problem when running across thousands of machines simultaneously. The more we scale to very large clusters, the more reliablilty becomes critical. In such environments, many of the normal debugging luxuries are gone (like a serial console, or any physical access), and we're forced to change to a different strategy to solve thorny intermittent race conditions.

We need (and have created) powerful but lightweight kernel tracing tools that are critical for cluster debugging, but also make powerful weapons in a smaller scale enviroment, where they can help debug issues more quickly and less intrusively. Real world usage examples will be included.

Ltrace Internals - Rodrigo Rubira Branco

Evaluating effects of cache memory compression on embedded systems - Anderson Farias Briglia, Allan Bezerra, Leonid Moiseichuk, Nitin Gupta

Cache memory compression (or compressed caching) was originally developed for desktop and server platforms but has also attracted interest on embedded systems where generally, memory is a scarce resource and hardware changes bring more costs and energy consumption. Cache memory compression brings a considerable advantage in input-output intensive applications by means of using a virtually larger cache for the local file system through compression algorithms. As a result, it increases the probability of fetching the necessary data in RAM itself, avoiding the need to make low calls to local storage. This work evaluates an Open Source implementation of the cache memory compression applied to Linux on an embedded platform, dealing with the unavoidable processor and memory resource limitations as well as with existing architectural differences.

We will describe the Compressed Cache (CCache) design, compression algorithm used, memory behavior tests, performance and power consumption overheads and CCache tuning for embedded Linux

ACPI in Linux - Myths vs Reality - Len Brown

Major Linux distributors have been shipping ACPI in Linux for several years, yet mis-perceptions about ACPI persist in the Linux Community. This paper addresses the top 10 myths about ACPI in Linux.

A broad range of Linux users, administrators, and developers will understand and benefit from this presentation without any in-depth knowledge of ACPI.

Cool Hand Linux -- Handheld Thermal Extensions - Len Brown, Harinarayanan Seshadri

Asynchronous System Calls - Zach Brown

Subtitle: Genesis and Status

Frysk 1, Kernel 0? - Andrew Cagney

Keeping Kernel Performance from Regressions - Tim Chen, Leonid I. Ananiev, Alexander V. Tikhonov

Breaking the Chains -- Using LinuxBIOS to Liberate Embedded x86 Processors - Jordan H. Crouse, Marc E. Jones, Ronald G. Minnich

GANESHA, a multi-usage with large cache NFSv4 server - Philippe Deniel, Thomas Leibovici, Jacques-Charles Lafoucriere

Why Virtualization Fragmentation Sucks - Justin M. Forbes

A New Network File System is Born: Comparison of SMB2, CIFS, and NFS - Steven M. French

Supporting the Allocation of Large Contiguous Regions of Memory - Mel Gorman, Andy Whitcroft

Kernel Scalability -- Expanding the Horizon Beyond Fine Grain Locks - Corey Gough, Suresh Siddha, Ken Chen

Kdump: Smarter, Easier, Trustier - Vivek Goyal, Neil Hortman, Ken'ichi Ohmichi, Maneesh Soni, Ankita Garg

Using KVM to run Xen guests without Xen - Ryan A. Harper, Michael D. Day, Anthony N. Liguori

Djprobe -- Kernel probing with the smallest overhead - Masami Hiramatsu, Satoshi Oshima

Desktop integration of Bluetooth - Marcel Holtmann

How virtualization makes power management different - Kevin Tian, Ke Yu, Jun Nakajima, Winston Wang

Ptrace, Utrace, Uprobes: Lightweight, Dynamic Tracing of User Apps - Jim Keniston, Ananth Mavinakayanahalli, Prasanna Panchamukhi, Vara Prasad

kvm: the Linux Virtual Machine Monitor - Avi Kivity, Yaniv Kamay, Dor Laor, Uri Lublin, Anthony Liguori

Linux Telephony - Paul P. Komkoff, Anna Anikina, Roman Zhnichkov

Subtitle: A Short Overview

Linux Kernel Development - Greg Kroah-Hartman

Subtitle: How Fast is it Going, Who is Doing It, What They are Doing, and Who is Sponsoring It

Implementing Democracy - Christopher James Lahey

Subtitle: a large scale cross-platform desktop application

Extreme High Performance Computing or Why Microkernels Suck - Chrostiph Lameter

Performance and Availability Characterization for Linux Servers - Vasily Linkov, Oleg Koryakovskiy

"Turning the Page" on Hugetlb Interfaces - Adam G. Litke

Resource Management: Beancounters - Pavel Emelianov, Denis Lunev, Kirill Korotaev

Manageable Virtual Appliances - David Lutterkort, Mark McLoughlin

Everything is a virtual filesystem: libferris - Ben Martin

Unifying Virtual Drivers - Jon Mason, Dwayne Shows, Dave Olien

The new ext4 filesystem: current status and future plans - Akantika Mathur, Mingming Cao, Suparna Bhattacharya, Andreas Dilger, Alex Tomas, Laurent Vivier

The 7 dwarves: debugging information beyond gdb - Arnaldo Carvalho de Melo

Adding Generic Process Containers to the Linux Kernel - Paul B. Menage

KvmFS: Virtual Machine Partitioning For Clusters and Grids - Andrey Mirtchovski, Latchesar Ikonkov

Linux-based Ultra Mobile PCs - Rajeev Muralidhar, Hari Seshadri, Krishna Paul, Srividya Karumuri

Where is your application stuck? - Shailabh Nagar, Balbir Singh, Vivek Kashyap, Chandra Seetharaman, Narashima Sharoff, Pradipta Banerjee

Per-task delay accounting is a new function of the Linux kernel which measures where Linux tasks spend time waiting (for CPU time, completion of submitted I/O, resolving page faults, etc).

Trusted Secure Embedded Linux - Hadi Nahari

Hybrid-Virtualization -- Enhanced Virtualization for Linux - Jun Nakajima, Asit K. Mallick

Readahead: time-travel techniques for desktop and embedded systems - Michael Opdenacker

Semantic Patches - Yoann Padioleau, Julia L. Lawall, Gilles Muler

Subtitle: Documenting and Automatic Collateral Evolutions in Linux Device Drivers

cpuidle -- Do nothing, efficiently... - Venkatesh Pallipadi, Adam Belay

Until now, most of the focus in Linux CPU power management has been on active CPU power management. cpufreq, which changes the processor frequency and/or voltage and manages the CPU performance levels and power consumption based on CPU load. Another dimension of CPU power management is CPU idling power. In general, there is now more focus shifting towards idle power (Energy star) and new platforms/processors are supporting multiple idle-states with different power and wakeup latency characteristics. Today most of the mobile processors support multiple idle states with varying amount of power consumed in those idle states and each state has an entry-exit latency associated. This emphasis on idle power necessitates the need for a generic Linux kernel framework to manage idle CPUs.

This paper covers 'cpuidle' - an effort toward a generic idle framework in the Linux kernel. The goal is to have a clean interface for any platform to make use of different CPU idle levels and also to provide abstraction between idle-drivers and idle-governors allowing for independent development. The target audience includes those who have a general interest in idle processor power management and its impact on battery life, developers who would like to create new and better governors, and developers interested in utilizing the cpuidle infrastructure on new platforms.

My bandwidth is wider than yours - Inaky Perez-Gonzalez

Zumastor Linux Storage Server - Daniel Phillips

Cleaning up the Linux Desktop Audio Mess - Lennart Poettering

Linux-VServer - Herbert Potzl, Marc E. Fiuczynski

Subtitle: Resource Efficient OS-Level Virtualization

Internals of the RT Patch - Steven Rostedt, Darren V. Hart

lguest: Implementing the little Linux hypervisor - Rusty Russell

ext4 online defragmentation - Takashi Sato

The Hiker Project: An Application Framework for Mobile Linux Devices - David "Lefty" Schlesinger

Getting maximum mileage out of tickless - Suresh Siddha, Venkatesh Pallipadi, Arjan Van De Ven

Containers: Challenges with the memory resource controller and its performance - Balbir Singh, Vaidyanathan Srinivasan

Kernel Support for Stackable File Systems - Josef Sipek, Yiannis Pericleous, Erez Zadok

Linux Rollout at Nortel - Ernest Szeideman

Resuest-based Device-mapper multipath and Dynamic load balancing - Kiyoshi Udea, Jun'ichi Nomura, Mike Christie

Short-term solution for 3G networks in Linux: umtsmon -

The GFS2 Filesystem - Steven Whitehouse

Driver Tracing Interface - David J. Wilder, Michael Holzheu, Thomas R. Zanussi

Linux readahead: less tricks for more - Fengguang Wu, Hongsheng Xi, Jun Li, Nanhai Zou

Regression Test Framework and Kernel Execution Coverage - Hiro Yoshioka

Enable PCI Express Advanced Error Reporting in the Kernel - Yanmin Zhang, T. Long Nguyen

Enabling Linux Network Support of Hardware Multiqueue Devices - Zhu Yi, Peter P. Waskiewicz, Jr.

Concurrent Pagecache - Peter Zijlstra

Evolution and Diversity: The Meaning of Freedom and Openness in Linux - James Bottomley

Note: paper not in proceedings

2007 looks like being the year when Free Software and Open Source finally make their differences (which have been bubbling away under the surface for over a decade) manifest. For all of its differences with "free software", Linux consistently maintains the greatest amount of innovation of any of the Open Source Operating Systems. We'll take a whimsical and offbeat tour of the reasons why this might be so from the point of view of the maintainer of possibly the least popular (certainly the least used) kernel architecture.