|Og dreams of kernels||Greg KH||2 years 34 weeks ago|
|Re: Old IPSEC bug||Theo de Raadt||2 years 18 weeks ago|
|Re: Allegations regarding OpenBSD IPSEC||Rod Whitworth||2 years 18 weeks ago|
|Re: Allegations regarding OpenBSD IPSEC||Jason L. Wright||2 years 18 weeks ago|
|Re: Allegations regarding OpenBSD IPSEC||Bob Beck||2 years 18 weeks ago|
|Allegations regarding OpenBSD IPSEC||Theo de Raadt||2 years 18 weeks ago|
Following some interesting scheduler benchmarking [earlier story], a discussion of the results has continued on the lkml. Though the O(1) scheduler offered impressive boosts in most cases, it was noticed that pipe latency increased, and pipe bandwidth decreased [earlier story].
Mike Kravitz suggested, "I believe the decrease in pipe bandwidth is a direct result of the removal of the '__wake_up_sync' support," then asking what the purpose behind this code was in the first place. Andrea Arcangeli explained that the code was an optimization for SMP servers to put processes sharing a pipe on the same CPU if they exceed the alloted buffers. (A full pipe will cause one process to block the other) The tests offered in this thread show that when multiple processes can block the other, keeping them on the same CPU offers a significant gain in bandwidth.
The decision was made to remove Perl from the FreeBSD -current base system [earlier story]. Perl will be supported as a port that the user can install after the base installation, however it will no longer be required.
Mark Murray put out a call to the -current mailing list asking for volunteers to port all Perl scripts in the base system to another language, such as sh or C. All critical programs are already being ported, with only a few minor ones left to be claimed.
Michael Smith recently posted his resignation from the FreeBSD core team. His resignation came shortly after the resignation of one of the FreeBSD founder's, Jordan Hubbard [earlier story]. Michael echoed similiar sentiments, with the project no longer being fun for him, "instead [it having] become obsessed with process and mechanics."
Keith Owens released v2.0 of kuild 2.5 on April 5, boasting a 30% speed improvement over kbuild 2.4 thanks to a rewrite of the core code [earlier story]. He announced that kbuild 2.5 was ready for kernel inclusion May 1 [earlier story], and a debate followed [earlier story]. There has still been no public word from Linus as to when kbuild 2.5 will be merged into the mainline 2.5 development kernel.
Much of the debate is surrounding Keith's choices for "getting it right". In his own words, "kbuild 2.4 defaults to doing a (possibly) inaccurate build after changes," whereas "kbuild 2.5 defaults to always doing an accurate build, no matter what has changed." With the rise of more and more kernel patches, Keith points out that more and more people are going to need the benifits of kbuild 2.5. He concludes, "the default for kernel build must be a safe and accurate build."
kbuild 2.5 is currently at revision 2.4, available here.
Mark Murray recently started a thread on the "current" FreeBSD mailing list regarding "the future of Perl on FreeBSD". He says, "The recent removal of the CGI perl module from CURRENT started a very lively discussion on both the perl lists and some FreeBSD ones." The Perl community's complaint is that Perl should be included fully or not at all. The complaints against Perl include it's increasing size and the fact that FreeBSD as an OS makes little use of Perl.
Three possible solutions were suggested: 1) leave Perl in the base and deal with it. 2) split Perl into two pieces, base and libraries. 3) remove Perl and make it a port which a user can add as s/he wishes.
Most responses endorsed the third option, though there is work in making this possible. Matthew Dillon pointed out several core programs that use Perl, suggesting as a workaround adding a 'miniperl' to be included in base that these programs could point to, but that would not conflict in any way with the Perl port.
Randy Hron posted some additional O(1) scheduler benchmarks [earlier story], this time illustrating how the scheduler patch seems to decrease pipe bandwidth and increase pipe latency. (neither affect is good)
The thread goes on to talk about Davide Libenzi's Balanced Multi Queue Scheduler patch (BMQS). Andrea Arcangeli says of this scheduler (which he has in his -aa kernel tree), "Davide's patch reduces the complexity of the scheduler from O(N) where N is the number of tasks in the system, to O(N) where N is the number of simultaneous running tasks in the system. It's also a simple optimization and it can make responsiveness even better than the mainline scheduler."
The third scheduler mentioned is the MQ, or Linux MultiQue Scheduler. The Linux Showcase & Conference web site offers an informative comparison of the Default SMP Scheduler (DSS), the MultiQueue Scheduler (MQS), and the Pooled MultiQueue Scheduler (PMQS).
Users of OpenBSD 2.9-STABLE are advised that this code branch will no longer be maintained starting June 1st, 2002. Miod Vallat says, "After this day, there will be NO MORE fixes commited to this branch. People relying on 2.9-STABLE are strongly advised to upgrade to a more recent release (preferrably 3.1 as it becomes available) as soon as possible.".
Josef Karthauser recently posted to the current FreeBSD mailing list, describing the status of recent USB stack changes. He explains, "The background is that I've been porting the developments that NetBSD has had into FreeBSD. In some cases we were two years behind the state of the art. Today we're in a much better shape."
Recently there have been some complaints to bugs in the updated USB stack, some people going so far as recommending the whole change be backed out. Josef's email was a comprehensive update on the project, listing three remaining bugs to be fixed:
Looking ahead to after these problems are resolved, Josef says, "The good news is that once these issues have been resolved we are in a good position to port the drivers that NetBSD have but we've not seen yet. There are lots, like uaudio and uvisor, that we should take avantage of."
With Keith Owens' announcement that kbuild 2.5 is ready for inclusion into the 2.5 development tree, a discussion on the lkml followed. The big complaint was based on Keith Owens decision to not support modversions (versioned symbols) with this release. Martin Dalecki compared the Linux design process to the Solaris design process, the latter intended to illustrate a better method. Alan Cox explained:
"Now I don't actually give a hoot whether you implement the module binding via /proc/kernel.so and C++ like mangling hacks or the _R stuff we do now but don't confuse the Linux approach of putting a few million users before a few binary module ISV's with the Solaris one."
Kai Germaschewski in turn complained about Keith's style of making such a large change and breaking modversions. Keith explains:
"I have been waiting for somebody to raise the "why not do one bit a time" argument for kbuild. That is exactly what I have done! Modversions are completely broken but are not required for a development kernel, they will be done later. There are 89 'FIXME' comments in the Makefile.in files where changes to source code should be done to clean up the include mess, those changes will be done later."
For full details, read on...
Randy Hron posted some benchmark results comparing numerous different 2.4 kernel branches. He says, "On an OSDL 4 way x86 box the O(1) scheduler effect becomes obvious as the run queue gets large."
Using tbench with 192 processes, his tests show the latest O(1) incarnation to offer approximately a 340% improvement in throughput! (Both Alan Cox's -ac patch and J.A. Magallon's -jam patch set include the latest O(1) scheduler, and both show the dramatic improvement in throughput) Randy intends to do more testing, the results of which will be posted here.
Marcelo released the 2.4.19-pre8 stable Linux kernel today, explaining that -pre9 would follow and then -rc1. 2.4.18 was released on February 25'th, over two months ago. Marcelo explained the delay:
"One might ask why 2.4.19 is taking so long to be released. The reason are the IDE changes: They need to be widely tested, its _really_ critical code."
You can find the full changelog here.
Keith writes: "It is faster, better documented, easier to write build rules in, has better install facilities, allows separate source and object trees, can do concurrent builds from the same source tree and is significantly more accurate than the existing kernel build system." He goes on to ask if Linus wishes to completely replace the old kbuild with the new, temporarily breaking unsupported architectures, or to have the two build systems coexist for a few releases.
Jordan Hubbard recently announced that he was stepping down from the FreeBSD core team, "After giving it a fair bit of thought over the last few weeks, I have decided to step down from core. I am doing this for a variety of reasons, any one of which would probably be sufficient grounds in and of its own and, taken in combination, certainly constitute ample justification for doing so". His reasons included a lack of time and energy, a feeling that the core group isn't what it once was, and a recent lack of personal enjoyment. He currently works for Apple as an engineering manager for the BSD based Darwin Project. He intends to continue contributing to FreeBSD as well.
In September of 2001, Keith Owens modified modutils to detected "tainted" kernels, or kernels with binary-only modules loaded into them. When binary-only modules are loaded and cause problems, kernel developers don't have access to the source code and are hence unable to debug the problem. Knowing whether a kernel is tainted can save them much wasted effort.
When a binary-only module is added to the running kernel, the following message is displayed: "Warning: Loading %s will taint the kernel..." (%s being replaced with the name of the binary only module) As a result of a recent lkml thread, with the release of modutils 2.4.16 the message also offers this URL to the lkml FAQ with a more complete explanation.