Linux in the news
All in one big page
See also: last week's Kernel page.
The current kernel release remains 2.4.0. Linus continues to put out 2.4.1 prepatches; the 2.4.1 prepatch is in its eighth revision as of this writing. It contains a number of small fixes, Jens Axboe's block I/O scheduling improvements, and, as of pre4, the ReiserFS filesystem (see below). See Linus's "half-assed changelog" for a quick list of the contents of this patch.
Alan Cox continues to maintain his "ac" series, with the latest release being 2.4.0-ac9. This patch is rather more extensive than Linus's prepatch (7MB, as opposed to just over 1MB for 2.4.1-pre8). Much of what is there is the result of a late kernel code auditing frenzy by a number of people; many questionable things have been cleaned up.
Linus's conservative approach to 2.4 patches is creating a large backlog of stuff waiting to go in. There will be quite a job of merging to do once Linus opens things up again.
No 2.2 kernel prepatches have come out over the last week.
Disk corruption with 2.4.0 and VIA IDE chipsets has been reported by some users. Evidently some VIA chips don't do DMA all that well, leading to unhappy users who, hopefully, have good backups. The maintainer of the driver for VIA IDE is Vojtech Pavlik; his is currently looking for trouble reports in order to be able to pin down just what the problem is. If you have VIA IDE and (1) have seen problems, or (2) are willing to do some testing, consider helping so that this problem can be eliminated.
2.4.1-pre6 also had disk corruption problems due to a mistake in the ReiserFS merge. It was fixed quickly, but it's always good to have an occasional reminder that development kernels can be risky. Those who are interested can read Linus's description of the problem and why he didn't notice it right away:
With a gig of RAM, inodes tend to cache really well.
This problem was discussed as part of a thread on the virtual memory performance of the 2.4.1 prepatch series, which is generally considered to be inferior to 2.4.0.
ReiserFS is in. Last week, remember, Linus announced that he was going to be extremely conservative in accepting patches for 2.4:
In order for a patch to be accepted, it needs to be accompanied by some pretty strong arguments for the fact that not only is it really fixing bugs, but that those bugs are _serious_ and can cause real problems.
Some people were thus rather surprised to see a whole new filesystem show up in 2.4.1-pre4. It's hard to make the claim, after all, that the addition of ReiserFS is fixing a serious bug.
Linus's answer to this surprise is essentially (1) putting ReiserFS into 2.4.1 has been expected for some time; (2) people have been pounding on ReiserFS for quite some time - SuSE, for example, has included it for a while; (3) ReiserFS does not affect anything outside of the filesystem, and (4) no showstopper bugs have shown up, so there's no need for a pure bugfix release.
So what is ReiserFS, anyway? This filesystem, created by Hans Reiser, has attracted interest in recent times due to its journaling capability - it can recover from a crash without the need for a lengthy filesystem checking pass. But journaling was not the original purpose behind ReiserFS - Mr. Reiser has much more ambitious plans than that. For details, have a look at the ReiserFS writeup from the November 11, 1999 LWN Kernel Page. For many, many more details, set aside a block of time and visit the Namesys home page.
For those wanting to experiment with ReiserFS, bear in mind that NFS still can not serve files from a ReiserFS partition. There are patches in circulation to remove that limitation, but they have not yet made it into the kernel tree. (Yes, SuSE's 2.2 distribution features a working ReiserFS NFS, but those patches are not currently in the 2.4.1 prepatch).
Who's the fastest web server of all? One of the more controversial features of the 2.4 kernel is khttpd - the kernel HTTP (web) server. Not everybody believes that this sort of service belongs in the kernel. If it is there, however, it should produce good results. Christoph Lameter decided to run some tests, using the Zeus benchmark, to compare khttpd's performance with boa, a user-space web server. His results:
Thus, at a first glance, it would seem there's little reason to keep khttpd in the kernel. Of course, the version of khttpd that is in the 2.4.0 kernel does not support persistent connections, which puts it at a disadvantage. But even when persistent connections were disabled for the test, boa came in with 227 requests per second - still more than khttpd.
The story does not end there, however. The author of khttpd - Arjan van de Ven - has a patch which enables support of persistent connections; it just has been kept out of the kernel by the persistent feature freeze. Mr. Lameter reran the tests with the patch applied and got a rather different set of results:
With persistent connections enabled, khttpd handles almost twice as many requests as boa; this would, one might think, end the discussion.
Except, of course, that there is another kernel web server out there. Ingo Molnar decided it would be fun to run the same benchmark with the (upcoming) TUX 2.0 patch, along with the zero-copy networking patch (discussed last week). His results: 12,658 requests per second. It's worth noting that Ingo's test ran on different hardware. Nonetheless, TUX is looking pretty good...
The quotes of Chairman Linux. Reading linux-kernel can be fun at times...
Once you realize that documentation should be laughed at, peed upon, put on fire, and just ridiculed in general, THEN, and only then, have you reached the level where you can safely read it and try to use it to actually implement a driver.
and his poor fortune:
Oh, well. Not everybody can be as goodlooking as me. It's a curse.
Other patches and updates released this week include:
Section Editor: Jonathan Corbet
January 18, 2001