Linux in the news
All in one big page
See also: last week's Kernel page.
The current development kernel release is 2.3.15. It is a huge (> 5MB) patch that includes new drivers for some ATM cards, Computone IntelliPort cards, and an SGI Visual Workstation audio driver. In all, almost 600 files were changed by the patch. Linus actually sent out an announcement for this release (rare these days); more information can be found there.
The biggest change may be that IP firewalling and masquerading have been removed from the kernel. It is all being replaced with a thing called "Netfilter," which is supposed to provide a much better solution to the problem. Netfilter is much more generic and flexible; it can also emulate the older ipchains and even ipfwadm interfaces for backward compatiblity.
The Netfilter code is currently maintained and distributed separately; there are three sites where it can be found: Penguin Computing, samba.org, and KernelNotes. More information can be found in the Linux Netfilter HOWTO, which is both interesting from a technology point of view and fun from a humor point of view.
The current stable kernel release remains 2.2.11, despite the fact that this kernel has a lethal memory leak bug that quickly brings down the system in certain situations. Alan Cox has has 2.2.12 patches ready for some time, but the release has not yet happened. Soon, presumably.
The RAID 0.90 patches have been pulled from 2.2.12. As discussed last week, RAID 0.90 is a large, incompatible change; not everybody thought it should go into a minor release of a stable kernel series. Since then, a bug turned up in 0.90, Alan Cox got more nervous, and Linus decided that merging it in was not a good idea. That probably pushes the updated RAID subsystem back to 2.4. Of course, current users of the new RAID can continue to apply the patches separately.
FireWire (IEEE 1394) development continues to move forward, according to this update posted by Andreas Bombe. Low-level raw I/O is now working, but a lot of higher-level stuff is still under development. Firewire is not an easy problem, Andreas and company are to be congratulated for their progress. (There is also a Linux IEEE 1394 FAQ available for those who are interested).
Spinlock metering is the latest kernel code contribution from SGI. Spin locks are used in SMP kernels to control access to critical data structures - things that should not be touched by more than one processor at once. Spinlocks are a potential performance killer, since a CPU that is unable to obtain a lock is not only blocked out of a particular resource, but it must "spin" and do nothing else until the lock is freed. For this reason, the Linux kernel has been slowly moving away from a "one big lock" architecture (used to get SMP working) to a much more fine-grained locking scheme.
It has been hard, however, to know how effective many of these changes have been. And it is almost impossible to know where to put further development effort without knowing which locks are the real performance problems. Thus, improving the scalability of the Linux kernel to more processors requires a better understanding of lock behavior. Thus, lock metering.
Some of the initial results posted by SGI on their lock metering page are interesting. They ran a heavy test load on a four-processor system running 2.2.10; the result was about 8% of the system's CPU time was spent waiting for locks. With 2.3.11, instead, the number of lock operations almost tripled (because there are many more locks), but the amount of time spent waiting for locks dropped to 2%. In other words, the work done to distribute locks through the kernel has been effective.
This is an important contribution which will help Linux reach a point where it can work with large numbers of processors. It is nice to see SGI working toward the improvement of the system in such a clear way. At times, at least, corporate involvement in Linux brings about tangible benefits for all Linux users.
Other patches and updates released this week include:
Section Editor: Jon Corbet
August 26, 1999