[LWN Logo]
[LWN.net]

Sections:
 Main page
 Security
 Kernel
 Distributions
 Development
 Commerce
 Linux in the news
 Announcements
 Back page
All in one big page

See also: last week's Kernel page.

Kernel development


The current development kernel release is 2.3.25. As usual, this release came with no announcement; a look at the patch reveals a fair number of architecture-specific and driver changes. There has also been a reorganization of the procfs code, which has created some residual problems elsewhere in the kernel - especially with external add-on patches like netfilter or IPSEC. These problems are being ironed out quickly.

The current stable kernel release remains 2.2.13. Alan Cox has been releasing 2.2.14 pre-patches, with the latest one being 2.2.14pre3. This patch contains a great many changes, including (at last) an updated Tulip ethernet driver and a lot of fixes. Knfsd 0.4.7 from H.J. Lu remains in this patch, and that looks like the version (with a fix or two) which will go into 2.2.14; the later knfsd patches are still a little too development quality for a stable kernel release.

64GB physical memory support on IA-32 is now a reality. Remember just a few months ago when the limit was 1GB? Things have progressed since then.

The 64GB support was written by Ingo Molnar, and slipped into 2.3.23 (despite the current feature freeze). It expands page table entries to 64 bits using a special addressing mode supported on Pentium Pro (and beyond) CPUs. With 64 bits you can support an unbelievable amount of memory; the 64GB limit is there now because that is all the current processors can handle.

The amount of virtual memory that any individual process can access remains 4GB; that will likely never change on 32-bit processors.

Some challenges remain. Before anything else, there are still some residual problems left over from the page table changes; a number of people (including Christoph Roland from SAP) have been fixing those up. To effectively make use of large amounts of memory, the kernel page cache must be able to take advantage of high memory. Ingo claims to have that working now. Getting the device drivers to handle 64-bit DMA operations will require some effort as well.

This is a crucial piece of work - a rather embarrassing Linux limit has now been completely removed. Congratulations are in order for Ingo and the others who have been doing this work. (For more information, please see Ingo's description of the 64GB work - that is the source of almost all of the above information).

Bogus Bogomips? Anybody who has watched a Linux system boot has seen the "bogomips" calculation which happens toward the beginning of the process. Bogomips are a simplistic calculation of the speed of the processor; the bogomips value is used to calculate the length of short, busy-wait delay loops.

Some people have noted that the bogomips calculation has a fundamental flaw: it assumes that the speed of the processor does not change. Variable-speed processors do exist, however, and are becoming more common. Perhaps the most obvious application for such processors is in laptop computers; when the battery runs low, the processor can be slowed down to save power. Some systems will also slow the processor when its temperature gets too high.

When the processor speed changes, the bogomips value used by the kernel should also change. Otherwise delays will be too long or too short. In the former case, the system simply slows down, but in the latter the consequences could be more severe. There is a fair amount of hardware out there which, unfortunately, requires delays to operate correctly. If the system does not wait as long as is needed, the hardware could malfunction, crash the system, corrupt data, or invest your life savings in LinuxOne stock. These are not desirable outcomes.

What to do? That is a good question. Recalculating bogomips on the fly is an expensive, time-consuming operation, and not all systems bother to inform the operating system when the clock speed changes. The hardware realtime clock is an accurate timebase at any clock speed, but lacks the resolution needed for short delays. There does not appear to be a good solution waiting in the wings at the moment.

Other patches and updates released this week include:

  • Initial debugging support for streaming SIMD instructions was announced by Jim Blandy. This work is being done by Cygnus and supported by Intel.

  • PPSkit 0.8.1 (nanosecond timekeeping) was released by Ulrich Windl.

  • Version 0.10, of a driver for sound cards using the ESS Maestro chips was released by Zach Brown.

  • Creative has released a GPL driver for its SB Live card - more information on this week's Commerce page.

  • The devfs patch from Richard Gooch is up to version 133. It is accompanied by devfsd 1.2.8 and devfs v99.6 which is intended for 2.2 kernels.

  • Borislav Deianov announced a "pre-alpha" implementation of a hierarchical fair scheduler for SMP systems.

  • Version 1.6 of the SMP HOWTO has been released by David Mentré.

  • Netfilter 0.1.11 (the new firewalling and masquerading system) has been released by Paul Rusty Russell and others.

  • Version 0.8 of the USB HOWTO has been released by Brad Hards.

Section Editor: Jon Corbet


November 4, 1999

For other kernel news, see:

 

Next: Distributions

 
Eklektix, Inc. Linux powered! Copyright © 1999 Eklektix, Inc., all rights reserved
Linux ® is a registered trademark of Linus Torvalds