Kernel development
Brief items
Kernel release status
The current 2.6 kernel prepatch is 2.6.8-rc2, which was released by Linus just prior to heading off to Ottawa. Changes this time include another big set of "sparse" annotations, a USB update, and lots of fixes; see the long-format changelog for the details.Linus's BitKeeper repository has acquired no patches since 2.6.8-rc2. There have also been no new -mm releases in the last week; expect the process to remain stopped for a few days until OLS is done. Thereafter, expect a large flood of patches as various developers test the limits of the new development process, which states that more intrusive patches are welcome in 2.6.
The current 2.4 prepatch remains 2.4.27-rc3; Marcelo has released no patches since July 3.
Kernel development news
The 2004 Kernel Summit
The 2004 Kernel Summit was scheduled for July 19 and 20, immediately prior to the Ottawa Linux Symposium. For those who are interested, the advance agenda is available. LWN editor Jonathan Corbet was a member of the program committee and attended the event; the following is his report.
Monday
Monday got off to a bit of a slow start; it seems that some of the developers may have enjoyed themselves a bit too much at the opening dinner the night before. Summit attendees also had a serious problem: ISP troubles keep the wireless network down all day, so there was little alternative to actually listening to the ongoing sessions. That said, a constructive set of discussions was held with little overt disagreement among the participants.Monday's sessions include:
- The processor panel. Engineers from
Intel, AMD, and IBM discussed where their architectures are going and
the implications for the Linux kernel.
- Virtual memory, with special attention
to the topics of NUMA support, hotpluggable memory, and page
clustering.
- Software suspend; what will it take
before we can reliably suspend and restore our systems?
- Kobjects and sysfs, and what needs to
be done to get the developers to complain about them less in 2.7.
- Video drivers, featuring a cameo
appearance by Keith Packard.
- Desktop performance. Robert Love led a
discussion on how the Linux kernel can better support desktop
applications.
- Short topics, being an opportunity for developers to present an interesting issue in five minutes.
Tuesday
Tuesday's coverage is now complete. This long day was set aside for a wide range of topics, from customer experiences to clustering, to the development process. The individual sessions were:
- The customer panel was a discussion led
by technical managers from Goldman Sachs and Amazon.com; they talked
about the problems they have with Linux and how the kernel could
better support their needs.
- Clustered storage and just what
capabilities need to go into the kernel to support this feature.
- Kexec and fast booting; what is
required to make the Linux kernel boot in a reasonable period of time?
- RAS tools, with an emphasis on simple
tools to help track down kernel reliability problems.
- Networking summit summary. One week
prior to the kernel summit, a small group got together in Oregon for a
two-day networking summit. Stephen
Hemminger summarized the results for the kernel group.
- Asynchronous I/O; a session on what
is required to make AIO work properly under Linux, and whether it is
worth doing.
- Multipath I/O and device mapper issues.
- Virtualization, running virtual
machines under (and on top of) Linux.
- Security. Linux has acquired a great
many security features over the last few years; what other work is
required in that area?
- Class-based Kernel Resource
Management.
- OSDL relations. How does the Open
Source Development Labs relate with the development community, and
how can that relationship be improved?
- The final session was about the development process; have a look to see what was said about when the 2.7 development series will begin - the answer is not quite what one would expect.
Software suspend: and then there were two
Software suspend has long been one of the problem areas in the Linux kernel. Despite multiple available implementations, truly reliable, out-of-the-box support for suspending a system to disk and (crucially) restoring it again is still missing. The return of one long-missing developer may help to improve things, however.Pat Mochel is the author of much of the power management and device model code in the 2.6 kernel. At one point in his efforts, his communications with software suspend ("swsusp") maintainer Pavel Machek broke down. In response, Patrick created his own fork of the software suspend code, which he called "pmdisk." The pmdisk code went into the kernel, and a small amount of work was done on it, but then Pat got busy with other things and vanished from the kernel development community. Nobody else was working on pmdisk, so the effort simply stalled. Pavel has discussed its removal from the kernel more than once, but that has not ever happened.
Just in time for the Kernel Summit, Pat returned with a 25-part patch set. Pat now believes that he made a mistake by forking the software suspend code, and is trying to make up. So his patch set removes pmdisk from the 2.6 kernel - but not before merging its best parts into the existing swsusp code base. With this patch set, swsusp is significantly cleaned up and more firmly integrated into the kernel's power management subsystem. This code base, Pat hopes, will prove a good starting place for further work toward respectable software suspend support.
There is one other player in this game, however: the swsusp2 work done by Nigel Cunningham and others. This code, which forked from swsusp some time ago, exists as a out-of-tree patch. It is, however, by many accounts, the most featureful and reliable software suspend implementation available for Linux. Swsusp2 offers a more polished display, the ability to abort the suspend operation, and more. Nigel has recently been making noises about trying to merge swsusp2 into the 2.6 mainline.
The last time this topic came up, there was a significant amount of resistance. All versions of swsusp feature a "refrigerator," which is a mechanism for cooling off all processes in the system before suspending the system itself. The swsusp2 refrigerator has seen significant amounts of work intended to keep the system from refrigerating processes which might still be needed by other parts of the system before it is suspended. The result is a large number of macro calls interspersed through the rest of the kernel marking places where a process should not be refrigerated. These changes make the swsusp2 patch relatively intrusive; they also create a new kind of critical section within the kernel which looks hard to maintain over the long run.
The current feeling, as reflected at the kernel summit, is that much of Nigel's work cannot be merged in its current form. It also needs to be split into a set of small, incremental patches before it can be considered. Hopefully this work will happen, however; swsusp2 has things to offer. If its best features can be merged in with swsusp, perhaps the kernel may yet move from three unreliable software suspend implementations to a single version which actually works.
Patches and updates
Kernel trees
Architecture-specific
Core kernel code
Development tools
Device drivers
Filesystems and block I/O
Janitorial
Miscellaneous
Page editor: Forrest Cook
Next page:
Distributions>>
