LTC bulletin: March 28, 2002

News in brief from IBM's Linux Technology Center

Maya Stodte (mstodte@yahoo.com)
Technology journalist
March 2002

Our biweekly news in brief from the Linux Technology Center -- where all the Linux-related technologies inside IBM are tracked -- includes the contribution of a global spinlock patch to the 2.5.5 kernel, which has also added PPC64 support for the IBM pSeries and iSeries, and has completed its merger of the Journal File System and the PCI Hot Plug driver. In other news, the LTC team has extended support for Bastille to SuSE and TurboLinux, combined the scalability effort into a single patch, and posted the new Persistent Device Naming Project, which avoids reliance on topology or discovery order for device naming protocols.

The updates in this bulletin are arranged alphabetically by project. To find out more about any of these projects and others, visit the Linux Technology Center.

Bastille Linux patch
Niki Rahimi has written a patch for Bastille Linux that features SuSE 7.2 and Turbolinux 7.0 support. "Bastille, an automated security hardening system that simplifies the work a system administrator must do in order to increase network and system security, currently runs on various Mandrake and Redhat platforms," comments Niki. "I have submitted this patch to extend Bastille to SuSE and TurboLinux." The patch was the primary new feature of the early March release of Bastille 1.3.0.

The Bastille project is part of the effort to simplify enhanced security in multiple Linux distributions. It uses a Perl script, each step of which is optional and contains information to educate and guide the installing administrator regarding the relevant security issues. "The initial development," the Bastille Team notes, "integrated Jay Beale's existing operating system hardening experience for Solaris and Linux with most of the major points from the SANS' Securing Linux Step by Step, Kurt Seifried's Linux Administrator's Security Guide, and countless other sources." The Bastille script includes support for Red Hat Linux versions 6.0 through 7.2 and Mandrake Linux versions 6.0 through 8.0, as well as a new X Window System-based configuration GUI and support for iptables firewalling.

Channel Bonding
The Linux Channel Bonding project released code for the 2.4.18 kernel in late February. The latest stable code, however, remains Chad Tindel's release for the 2.4.17 kernel that came out in early January. The major change to that code was to the slave flags, which will now be restored at release time.

The Channel Bonding project works on methods to join multiple networks on Linux into a single logical network with higher bandwidth. The project team works with the Beowulf Ethernet Channel Bonding project, where bonding work began. An independent listing of the benchmarks of a sample of inter-processor speeds with and without channel bonding has been measured using the systest utility.

Journaled File System (JFS)
JFS has been merged into linux-2.5.6-pre2, which was released at the beginning of March. The latest JFS release is version 1.0.15, which came out in the middle of February. Read about the most recent changes to the file system and utilities in the LTC bulletin from March 14, or get complete details from the JFS changelog in the CVS repository.

The Journaled File System technology from IBM, currently used in its enterprise servers, provides a log-based, byte-level file system designed for high-throughput server environments. Work is underway to complete the port to Linux.

Linux Kernel SCTP
The LKSCTP (Linux Kernel Stream Control Transmission Protocol) released version 2.4.17-0.4.4 in late February. This is a developers' release and is loosely based on the SCTP User Space Reference by Randy Stewart and Qiaobing Xie. Patches include an INIT retransmission, StreamId tests, and COOKIE-ECHO bundling. The last major LKSCTP release was version 2.4.17, posted in mid-February, in which the entire CVS source tree changed.

The Stream Control Transmission Protocol (SCTP) is a multi-homed, multi-streamed transport protocol. Two SCTP mailing lists are available through the SCTP developers' forum. The most recent LKSCTP release, from February 2002, is version 2.4.17-0.4.4.

Linux Scalability Effort
The Linux Scalability Effort published an lse-union patch at the end of February, which incorporates all their efforts into a single patch and works for the 2.4.17 kernel. The project has also released a new cpu-memsets patch for NUMA, with page allocation improvements as well as bug-fixes and general clean-up, a read-copy update for 2.4.18, and a scalable counters patch for 2.5.5.

In early March the project also held a conference call, the minutes for which have been made publicly available. The call covered topics including user-level locking and a proposed paper for OLS with Rusty Russell, among others; method queues and file locking and a kernel data structure with embedded semaphore, proposed by Hubertus Franke; a look at fair locking versus convoy avoidance locking; a discussion on locksort; and an update on the fast walk patch.

The Linux Scalability Effort is an investigation into Linux 2.4 SMP scalability, using Netbench as a workload with Samba. The process scheduling and memory placement effort has made its design notes and more detailed information about the work on CpuMemSets available through the project site on SourceForge.

Linux Test Project
The Linux Test Project has released version 20020307, which supports the IBM z-Series mainframe, PowerPC, and Intel IA-64 architectures as well as initial support for an IPv6 network. "This release," according to the team, "includes enhancements to the test driver, pan, that allow for more control over testing duration. Additional tests have been added that cover disk I/O, semaphores, signals, Stream Control Transmission Protocol (SCTP), and tools for the scheduler."

In other news, a paper on expected LTP errors has been posted to the SourceForge project site, as well as a link to a white paper that details enterprise-level testing in Linux.

"The Linux Test Project is a group aimed at testing and improving Linux," explains the team. "The goal of the LTP is to deliver a suite of automated testing tools for Linux as well as publishing the results of tests we run." The changelog notes that "there are several minor bugfixes and enhancements to this release as well as some new tests. New tests include an ipc semaphores test, an nfsstat test, a large file test, a filesystem permissions test, and several memory stress tests."

Miscellaneous patches
Juergen Doelle's spinlock patch has been included in linux-2.5.5. "The latest version of the patch introduces a _cacheline_aligned_in_smp macro," Juergen explains. "It applies on lock by lock base and leaves the handling of the lock and the UP code unchanged."

The miscellaneous patch page from the LTC covers various and sundry patches that are not aligned with any one particular project, produced by members of the Linux Technology Center. They are generally listed here beginning with the most recent and have been submitted to the Linux Kernel mailing list, unless otherwise noted.

PCI Hot Plug
PCI Hot Plug driver was merged into linux-2.5.6-pre2 and linux-2.4.19-pre2, which means that downloads in the PCI Hot Plug for Linux project are no longer necessary and the UIs are no longer functional. The most recent PCI Hot Plug patches from the LTC are a driver for new IBM motherboards and a memory leak patch, which were covered in more detail in the LTC bulletin from February 14.

"The PCI Hot Plug driver for Linux is part of a project to add support for PCI Hot Plug into the Linux kernel," notes the project team. "This project includes source for a driver (cpqphp.o) for the Compaq PCI Hot Plug controller found in Compaq ProLiant and other servers. Also, there are GUI and command-line interfaces to PCI Hot Plug. Using this software and a 2.4 Linux kernel, it is possible to add or remove most PCI adapters in a server with the supporting hardware."

Persistent Device Naming
The new Persistent Device Naming project was added to the LTC site menu in late February. The project has just published its first experimental prototype, version 0.1.1, which can automatically name scsi disks and devices to their legacy names.

"The purpose of the Device Naming project is to manage the devfs /dev namespace so that names of devices remain the same even if their discovery order or bus topology changes," according to Mike Sullivan, the project leader. He explains that the experimental devname module aims to name devices based on their characteristics, as opposed to the legacy namespace, which refers to a device's discovery order to derive its name, and Richard Gooch's Devfs namespace, which uses topology as a reference. SCSI disk and partition characteristics, the initial focus of the project, derive from the inquiry command and partition labels, the functions for which are provided by Patrick Mochel's Driverfs filesystem, the notifications it generates and the device naming library module, a devfsd callable shared library. For more detailed information and notes, see the readme file for the 0.1.1 release.

ppc64
PowerPC 64 support for IBM pSeries and iSeries hardware has been added to linux-2.5.5. There are no changes outside of include/asm-ppc64 and arch/ppc64 in this changeset, as noted in the 2.5.5 release notes. 2.5.5 also includes several other ppc updates, among them fixes to thread_saved_pc, init_thread_union, schedule_tail, and sched_find_first_bit.

The ppc64 port of the Linux kernel runs on both iSeries and pSeries boxes with 64-bit PowerPC processors.

Miscellaneous news
The 2.5.5 kernel includes William Irwin and Rik van Reil's struct page size reductions among its many other adoptions of work from members of the LTC this month.

Resources

About the author
Maya Stodte, previously a contributing writer and editor for developerWorks, is now working as a freelancer. She can be reached at mstodte@yahoo.com.

Copyright 2002