Con Kolivas, a practicing doctor in Australia, has written a benchmarking tool called ConTest which has proven to be tremendously useful to kernel developers, having been designed to compare the performance of different versions of the Linux kernel. He was kind enough to speak with us, explaining how he got started on this project, what makes his benchmark unique, and how to interpret the resulting output. Comparing the 2.5 development kernel to the 2.4 stable kernel, Con says, "a good 2.5 kernel (and that's not all of them) feels faster than 2.4 in most ways and this bodes well for 2.6." The interesting results from his frequent benchmarks back up this statement.
Con also describes his high performance patchset for the 2.4 stable kernel, currently at version 2.4.19-ck9. This patchset adds a number of performance boosting patches ideal for a desktop environment, such as the O(1) scheduler, kernel preemption, low latency and compressed caching. Read on for the full interview...
Robert Love [interview] recently backported the jiffies_to_clock_t() code from the 2.5 development kernel to the 2.4 stable kernel. This patch allows one to adjust the frequency of the timer interrupt, defined in the standard 2.4 kernel with HZ=100. In 2.5 this has been increased to HZ=1000.
I wrote Robert asking if he could explain the usefulness of his patch, and he replied in kind with a lengthy and very interesting email detailing what the patch is, how it works, and why it's useful. He explains, "The timer interrupt is at the heart of the system. Everything lives and dies based on it. Its period is basically the granularity of the system: timers hit on 10ms intervals, timeslices come due at 10ms intervals, etc."
Read on to learn what affect changing this value will have on your Linux server, and to see the actual patch...
Neal Walfield [interview] announced the first release of RMGPT, which "is (or rather, aspires to one day be) a complete, portable implementation of IEEE Std 1003.1-2001 threads [also] known as POSIX threads." I was excited to read Neal's announcement email, as this is a big step forward for the GNU/Hurd project. With this new pthreads library, it will soon be possible to run complex software packages on the Hurd, including the GNOME and KDE desktops, the OpenOffice suite, and the Mozilla web browser.
Regarding the name, RMGPT, Neal explains, "Most new program names are a bunch of letters stuck together. Only later does it become an acronym and the words become bound. This is boring; each new release of RMGPT will offer a fresh, new and exciting expansion of the 'acronym'." For this first release, RMGPT stands for "Rubbish, I asked for mine with Minced Garlic, Please Take this back".
Neal was kind enough to answer a few questions about his pthread efforts. Read on to learn more...
Recently, a lot of work has gone into the 2.5 development kernel to facilitate better debugging. Starting with the 2.5.39 kernel, an infrastructure is in place for tracking down a wide range of atomicity/sleep bugs.
For example, a task in the kernel cannot sleep if it is atomic (by definition). By atomic we mean a number of things: the task holds a spinlock, holds the BKL, or has explicitly disabled preemption. Further, interrupt handlers are not schedulable so they too are atomic. In other words, not willing to be scheduled.
Chris Jepeway recently posted an interesting patch to the NetBSD tech-performance mailing list. His patch provides "disk-level transaction clustering", bunching together a series of contiguous disk read or writes into a single read or write. This logic is added at the disk driver level, after the filesystem has performed its own read-ahead or write-behind logic, providing about a 5% improvement in throughput. Chris says, "None of this is earth-shattering news, of course, but it does demonstrate that clusters can be missed at the FS / VM interface. And that's when only one process uses the disk in question."
I contacted Chris who was kind enough to answer a few questions about his efforts. To learn more, read on...
Roman Zippel recently released version 0.4 of his new configuration system for the 2.5 Linux kernel, a replacement for the aging CML currently in use. He has attempted to make the transition to this new system much simpler than was the case with CML2 [earlier story] in a hope to have it merged into the 2.5 kernel.
Curiosity got the best of me, so I downloaded the latest version as well as the 2.5.33 kernel tree, and gave it a try. I ran into a couple of compilation errors, so initiated an email exchange with Roman. Beyond helping me troubleshoot these problems, he was also kind enough to answer some general questions about his efforts with the new configuration system. Read on for the full details, then try it out yourself and provide Roman with feedback.
KernelTrap's first interview was with Robert Love in October of 2001. Since that time, his kernel preemption patch has been merged into the 2.5 development kernel and he's continued to be active on the Linux kernel development scene. He recently agreed to speak with us again.
In this interview, Robert discusses the status of Linux kernel preemption, talks about his recent involvement with the O(1) scheduler and explains his recent VM overcommit work. He also reflects upon Linus' use of Bitkeeper, the future of Linux, and the recent Kernel Summit in Ottawa.
Presently in California working for MontaVista, Robert will return to college for his third year at the University of Florida in late August. Read on for the full interview.
Robert Love [earlier interview] released version 0.0.9 of his scheduler utilities package tonight. The schedutil README explains:
"These are the Linux scheduler utilities - schedutils for short. These programs take advantage of the scheduler family of syscalls that Linux implements across various kernels. These system calls implement interfaces for scheduler-related parameters such as CPU affinity and real-time attributes. The standard UNIX utilities do not provide support for these interfaces -- thus this package."
Having learned about these utilities, I decided to give them a try myself. I downloaded the source tarball from Robert's home page (an RPM is also available) and extracted the source. Compilation and installation from source was nothing more than the familiar '
./configure && make && su -c "make install"'. Very quickly I was reading the man pages and playing with these useful utilities.
Marc-Christian Petersen originated the WOLK project in March of 2002. WOLK is the Working Overloaded Linux Kernel, a large set of nearly 450 useful Linux kernel patches applied against the current stable 2.4 tree. The project has recently expanded to offer a second 'secure' patchset, this one against the older stable 2.2 tree.
In this interview, Marc-Christian Petersen tells the history behind WOLK and discusses many of the patches included.
KernelTrap has spoken with guru Jordan Hubbard, one of the creators of FreeBSD and currently a manager of Apple's Darwin project. With just a high school education, Jordan has offered some impressive contributions to the world of computing.
In this interview, Jordan talks about his current involvement with Darwin, as well as his past efforts with FreeBSD and 386BSD. He also reflects on his recent decision to step down from the core FreeBSD team. Read on for the full interview.
KernelTrap has spoken with Peter Chubb who currently works for the Gelato Project. His efforts are presently focused on supporting large disks and partitions, utilizing 64-bits. Regarding the project's focus of improving Linux support for the Itanium 64-bit processor, Peter says, "Back in the days when the VAX was king, there was a general assumption amongst some programmers that `all the world's a vax'. In the Linux world, there's a similar assumption: `all the world's a pentium'."
Peter lives in New South Wales, Australia, with his wife, Lucy, also a kernel hacker, and two daughters. He earned a PhD under the late John Lions, author of the Lions Book. His UNIX kernel hacking experience is with an impressively large number of kernels.
KernelTrap has spoken with Larry McVoy, BitMover founder and primary BitKeeper author. BitKeeper, a distributed source control system, has been adopted by Linux kernel creator Linus Torvalds and condemned by free software icon Richard Stallman.
In this interview, Larry looks back through the years, describing his exposure to computers and Linux. He also discusses the history of BitKeeper, from writing NSElite for Sun (which turned into their still used SCM, Teamware), to his desire to keep Linus from burning out, to the present day solution. The choice to not license BitKeeper under the GPL is also explained.
Larry discusses much beyond Bitkeeper as well, exploring some of his other interests. For the full interview, read on.