Linux in the news
All in one big page
See also: last week's Kernel page.
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:
Section Editor: Jon Corbet
November 4, 1999