Kernel Traffic #246 by Zack Brown
[email protected] Fri, 26 Dec 2003 10:38:41 -0800
| Newsgroups | gmane.linux.kernel.kernel-traffic |
|---|---|
| Message-ID | <E1AZwrB-000873-00@renegade> |
Kernel Traffic #246 For 26 Dec
By Zack Brown
Table Of Contents
* Standard Format
* Text Format
* XML Source
* Introduction
* Threads Covered
1. 3 Dec - 18 Dec (276 Discussion Of Binary Modules; Linus Prefers
posts) OSL License To GPL
2. 8 Dec - 14 Dec (107 Status Of DevFS/udev In 2.6
posts)
3. 10 Dec - 12 Dec (11 Linux 2.4.24-pre1 Released; XFS Merged
posts)
4. 11 Dec - 12 Dec (7 New -tiny Kernel Patchset To Collect Patches
posts) That Shrink The Kernel
5. 11 Dec - 15 Dec (14 Revised 'Unreliable' Kernel Locking Guide
posts)
6. 14 Dec - 21 Dec (33 Larry Pulls Another Larry
posts)
7. 14 Dec (2 Status Of CONFIG_USB_DC2XX In 2.6
posts)
8. 15 Dec - 18 Dec (4 Update Of Experimental Net Driver
posts)
9. 17 Dec - 19 Dec (17 Status Of -mm Tree And 2.6
posts)
10. 17 Dec - 18 Dec (47 Linux 2.6.0 Released
posts)
11. 18 Dec (1 libsysfs 0.4.0 Released
post)
12. 18 Dec (1 x86_64-2.6.0-1 Released
post)
13. 18 Dec (1 Itanium Maintainership
post)
Introduction
1. Discussion Of Binary Modules; Linus Prefers OSL License To GPL
3 Dec - 18 Dec (276 posts) Archive Link: "Linux GPL and binary module
exception clause?"
Topics: Binary-Only Modules, FS: JFS
People: Kendall Bennett, Linus Torvalds, Jason Kingsland, Alan Cox
A lot of folks participated in this thread. Below are some small bits and
pieces.
Kendall Bennett started it off, saying:
I have heard many people reference the fact that the although the Linux
Kernel is under the GNU GPL license, that the code is licensed with an
exception clause that says binary loadable modules do not have to be under
the GPL. Obviously today there are vendors delivering binary modules (not
supported by the kernel maintainers of course), so clearly people believe
this to be true. However I was curious about the wording of this exception
clause so I went looking for it, but I cannot seem to find it. I downloaded
the 2.6-test1 kernel source code and looked at the COPYING file, but found
nothing relating to this (just the note at the top from Linus saying user
programs are not covered by the GPL). I also looked in the README file and
nothing was mentioned there either, at least from what I could see from a
quick read.
So does this exception clause exist or not? If not, how can the binary
modules be valid for use under Linux if the source is not made available
under the terms of the GNU GPL?
Lastly I noticed that the few source code modules I looked at to see if the
exception clause was mentioned there, did not contain the usual GNU GPL
preable section at the top of each file. IMHO all files need to have such a
notice attached, or they are not under the GNU GPL (just being in a ZIP/tar
achive with a COPYING file does not place a file under the GNU GPL). Given
all the current legal stuff going on with SCO, I figured every file would
have such a header. In fact some of the files I looked at didn't even
contain a basic copyright notice!!
Linus Torvalds repied:
No such exception exists.
There's a clarification that user-space programs that use the standard
system call interfaces aren't considered derived works, but even that isn't
an "exception" - it's just a statement of a border of what is clearly
considered a "derived work". User programs are _clearly_ not derived works
of the kernel, and as such whatever the kernel license is just doesn't
matter.
And in fact, when it comes to modules, the GPL issue is exactly the same.
The kernel _is_ GPL. No ifs, buts and maybe's about it. As a result,
anything that is a derived work has to be GPL'd. It's that simple.
Now, the "derived work" issue in copyright law is the only thing that leads
to any gray areas. There are areas that are not gray at all: user space is
clearly not a derived work, while kernel patches clearly _are_ derived
works.
But one gray area in particular is something like a driver that was
originally written for another operating system (ie clearly not a derived
work of Linux in origin). At exactly what point does it become a derived
work of the kernel (and thus fall under the GPL)?
THAT is a gray area, and _that_ is the area where I personally believe that
some modules may be considered to not be derived works simply because they
weren't designed for Linux and don't depend on any special Linux behaviour.
Basically:
+ anything that was written with Linux in mind (whether it then _also_
works on other operating systems or not) is clearly partially a derived
work.
+ anything that has knowledge of and plays with fundamental internal
Linux behaviour is clearly a derived work. If you need to muck around
with core code, you're derived, no question about it.
Historically, there's been things like the original Andrew filesystem
module: a standard filesystem that really wasn't written for Linux in the
first place, and just implements a UNIX filesystem. Is that derived just
because it got ported to Linux that had a reasonably similar VFS interface
to what other UNIXes did? Personally, I didn't feel that I could make that
judgment call. Maybe it was, maybe it wasn't, but it clearly is a gray
area.
Personally, I think that case wasn't a derived work, and I was willing to
tell the AFS guys so.
Does that mean that any kernel module is automatically not a derived work?
HELL NO! It has nothing to do with modules per se, except that non-modules
clearly are derived works (if they are so central to the kenrel that you
can't load them as a module, they are clearly derived works just by virtue
of being very intimate - and because the GPL expressly mentions linking).
So being a module is not a sign of not being a derived work. It's just one
sign that _maybe_ it might have other arguments for why it isn't derived.
He replied to himself a few minutes later, to add:
Side note: historically, the Linux kernel module interfaces were really
quite weak, and only exported a few tens of entry-points, and really mostly
effectively only allowed character and block device drivers with standard
interfaces, and loadable filesystems.
So historically, the fact that you could load a module using nothing but
these standard interfaces tended to be a much stronger argument for not
being very tightly coupled with the kernel.
That has changed, and the kernel module interfaces we have today are MUCH
more extensive than they were back in '95 or so. These days modules are
used for pretty much everything, including stuff that is very much
"internal kernel" stuff and as a result the kind of historic "implied
barrier" part of modules really has weakened, and as a result there is not
avery strong argument for being an independent work from just the fact that
you're a module.
Similarly, historically there was a much stronger argument for things like
AFS and some of the binary drivers (long forgotten now) for having been
developed totally independently of Linux: they literally were developed
before Linux even existed, by people who had zero knowledge of Linux. That
tends to strengthen the argument that they clearly aren't derived.
In contrast, these days it would be hard to argue that a new driver or
filesystem was developed without any thought of Linux. I think the NVidia
people can probably reasonably honestly say that the code they ported had
_no_ Linux origin. But quite frankly, I'd be less inclined to believe that
for some other projects out there..
Jason Kingsland pointed out that if "mucking around with core code" made a work
derived, then "why the introduction of EXPORT_SYMBOL_GPL and MODULE_LICENSE()?
Specifying explicit boundaries for the module interface has legitimised
binary-only modules. This was the signal to developers of proprietary code that
binary-only modules are tolerable." He also gave a link to an article by Kevin
Dankwardt (http://www.linuxdevices.com/articles/AT5041108431.html) on the
subject. Linus replied that EXPORT_SYMBOL_GPL and MODULE_LICENSE were "really
just documentation." He went on:
This is exactly so that it is more clear which cases are black-and-white,
and where people shouldn't even have to think about it for a single second.
It still doesn't make the gray area go away, but it limits it a bit ("if
you need this export, you're clearly doing something that requires the
GPL").
Note: since the kernel itself is under the GPL, clearly anybody can modify
the EXPORT_SYMBOL_GPL() line, and remove the _GPL part. That wouldn't be
against the license per se. But it doesn't make a module that needs that
symbol any less needful of the GPL - exactly because the thing is just a
big cluehint rather than anything else.
Elsewhere, Linus added his judgement of the GPL and the OSL (Open Software
License) (http://opensource.org/licenses/osl-2.0.php) . Of the GPL, Linus said,
"It's a very solid license, and your rants about it have no basis in fact. I
personally actually like the OSL slightly better in the way it was written."
Elsewhere, Linus offered:
a "binary linux kernel module" is a derived work of the kernel, and thus
has to come with sources.
But if you use those same sources (and _you_ wrote them) they do not
contain any Linux code, they are _clearly_ not derived from Linux, and you
can license and use your own code any way you want.
You just can't make a binary module for Linux, and claim that that module
isn't derived from the kernel. Because it generally is - the binary module
not only included header files, but more importantly it clearly is _not_ a
standalone work any more. So even if you made your own prototypes and tried
hard to avoid kernel headers, it would _still_ be connected and dependent
on the kernel.
And note that I'm very much talking about just the _binary_. Your source
code is still very much yours, and you have the right to distribute it
separately any which way you want. You wrote it, you own the copyrights to
it, and it is an independent work.
But when you distribute it in a way that is CLEARLY tied to the GPL'd
kernel (and a binary module is just one such clear tie - a "patch" to build
it or otherwise tie it to the kernel is also such a tie, even if you
distribute it as source under some other license), you're BY DEFINITION not
an independent work any more.
(But exactly because I'm not a black-and-white person, I reserve the right
to make a balanced decision on any particular case. I have several times
felt that the module author had a perfectly valid argument for why the
"default assumption" of being derived wasn't the case. That's why things
like the AFS module were accepted - but not liked - in the first place).
In the same post, he went on:
This is why SCO's arguments are specious. IBM wrote their code, retained
their copyrights to their code AND THEY SEVERED THE CONNECTION TO SCO'S
CODE (and, arguably the connections didn't even exist in the first place,
since apparently things like JFS were written for OS/2 as well, and the
Linux port was based on that one - but that's a separate argument and
independent of my point).
See the definition of "derivative" in USC 17.1.101:
A "derivative work" is a work based upon one or more preexisting works,
such as a translation, musical arrangement, dramatization,
fictionalization, motion picture version, sound recording, art
reproduction, abridgment, condensation, or any other form in which a
work may be recast, transformed, or adapted. A work consisting of
editorial revisions, annotations, elaborations, or other modifications
which, as a whole, represent an original work of authorship, is a
"derivative work".
And a binary module is an "elaboration" on the kernel. Sorry, but that is
how it IS.
In short: your code is yours. The code you write is automatically
copyrighted by YOU, and as such you have the right to license and use it
any way you want (well, modulo _other_ laws, of course - in the US your
license can't be racist, for example, but that has nothing to do with
copyright laws, and would fall under a totally different legal framework).
But when you use that code to create an "elaboration" to the kernel, that
makes it a derived work, and you cannot distribute it except as laid out by
the GPL. A binary module is one such case, but even just a source patch is
_also_ one such case. The lines you added are yours, but when you
distribute it as an elaboration, you are bound by the restriction on
derivative works.
Or you had better have some other strong argument why it isn't. Which has
been my point all along.
Elsewhere, Linus also said:
personally, I have my own judgment on what "derivative works" are, and I
use that judgement to decide if I'd complain or take the matter further.
And so _I_ personally think some binary modules are ok, and you've heard my
arguments as to why. That means that _I_ won't sue over such uses, since in
my opinion there is no copyright infringement IN THOSE CASES due to me not
considering them derivative.
My opinions are fairly public, and the stuff I say in public actually does
have legal weight in that it limits what I can do (if I say in public that
I think something is ok, I have a much harder time then making the argument
that it _isn't_ ok in front of a judge - this is what the "estoppel" thing
is all about).
But the thing is, my public opinions don't bind anybody else. So if Alan
Cox, or _any_ other kernel copyright holder, disagrees with me (and trust
me, people do), they have the right to complain on their own. Their case
would be weakened by my stance (simply because a defendant could point to
my opinions and the judge might be swayed by that).
And quite frankly, my largest reason for not complaining loudly has often
been that I'm lazy, and in several cases of sme people using GPL'd work
improperly I have been ready to join a lawsuit that somebody else
initiates. So far people have tended to back down.
Elsewhere, Linus also said:
I'd like to make it clear that I'm actually much softer on this than many
other people - I've been making it clear that I think that binary-only
modules _are_ ok, but that the burden of proof of ok'ness is squarely on
the shoulders of the company that makes them.
So please do get that part clear: I'm pretty well-known for allowing
binary-only modules in things like AFS and nVidia, where some people think
they shouldn't be allowed.
But the real issue here (and in the subject line in this whole discussion)
is about an "exception clause".
There is none. And I'm just saying that there is NO WAY that a binary-only
module is "automatically in the clear". They _may_ be, but it's on the
basis of something totally different than just "it's a module".
This is why I want to make it so clear that "moduleness" (which is not a
word, but should be one) is not the thing that matters. There's still a
strong "linkage" to a particular kernel in a binary module, and the act of
running the linker is not what determines whether a work is a derived work.
In short, you should not see my arguments as a way of saying "all modules
are derived works". I'm clearly not saying that, since I _do_ allow binary
only modules and I don't claim they infringe.
So I'm not arguing for a very wide notion of derived works: I'm arguing
AGAINST the narrow notion that a module would somehow automatically _not_
be derived.
This is why I've said at least fifty times that a kernel module is to be
considered "derived by default". The non-derivedness comes from things that
have nothing to do with whether it is a module.
There was quite a long discussion, involving many interesting people who said
many interesting things.
2. Status Of DevFS/udev In 2.6
8 Dec - 14 Dec (107 posts) Archive Link: "State of devfs in 2.6?"
Topics: FS: devfs, FS: ramfs, FS: sysfs, Hot-Plugging
People: Andrew Walrond, William Lee Irwin III, Rob Landley, Greg KH
Andrew Walrond asked:
Whats the general feeling about devfs now? I remember Christoph and others
making some nasty remarks about it 6months ago or so, but later noted
christoph doing some slashing and burning thereof.
Is it 'nice' yet?
Greg KH said that the DevFS code was deprecated and suffered from unsolvable
race conditions; William Lee Irwin III also said to Andrew, "I would say it's
deprecated at the very least. sysfs and udev are supposed to provide equivalent
functionality, albeit by a somewhat different mechanism." Andrew thanked him
and asked how well the udev replacement for DevFS was doing; in particular, did
udev offer a viable MAKEDEV replacement. Rob Landley replied:
My understanding is that udev takes the information exported by sysfs about
what devices exist in the system, and creates device nodes in /dev (which
can be a ramfs mount or part of a persistent filesystem, udev itself
doesn't care). I'm guessing it traverses sysfs to see what the system's got
on startup (some variant of "find /sys -name device", perhaps) and then
receives hotplug events when new devices are added later. On the whole,
this is generally cool, hotplug friendly, and small and simple. _and_ the
result looks like a recognizable /dev directory, so end-user applications
don't have to be "devfs aware" (which was a bad sign from day 1 if you ask
me).
Unfortunately, sysfs doesn't yet export device node information for
everything in the system yet. (There aren't any under /sys/cdev, /sys/
devices/legacy, or /sys/devices/system, for example). There are pending
patches to add more, but they're not considered bug fixes, so Linus won't
take them before 2.6.0 and we'll have to wait until after 2.6.0 for
development on this subsystem to finish.
Probably somewhere in the 2.6.4 to 2.6.6 timeframe, sysfs will have all the
device exports udev needs. (Or at least all the ones anybody's complained
about yet.) Until then... dunno. Maybe you can use a /dev directory on a
persistent filesystem that you mknod any extra devices you need into
yourself?)
3. Linux 2.4.24-pre1 Released; XFS Merged
10 Dec - 12 Dec (11 posts) Archive Link: "Linux 2.4.24-pre1"
Topics: FS: ReiserFS, FS: XFS, OOM Killer
People: Mike Fedyk, Marcelo Tosatti, Hans Reiser
Marcelo Tosatti announced 2.4.24-pre1, saying the XFS filesystem had been
merged. See Issue #244, Section #6 (30 Nov : Split XFS Patches For 2.4.23) for
the debate on this issue.
Mike Fedyk asked, "Will you accept the data-logging patches for reiserfs3 from
suse in this release if it is submitted? Don't forget that the OOM killer has
been added as an option (defaulting to off :)" Marcelo said, "Its up to the
reiserfs people." Hans Reiser replied, "I will approve it once Chris tells me
it is ready. (Especially since I asked him for the patch port....;-) )" And
Mike said, "Hasn't it been ready for a while now? Let's get the merging
started. :)"
4. New -tiny Kernel Patchset To Collect Patches That Shrink The Kernel
11 Dec - 12 Dec (7 posts) Archive Link: "[ANNOUNCE] -tiny tree for small
systems (2.6.0-test11)"
Topics: FS: sysfs, Networking, Small Systems
People: Matt Mackall, Tom Rini, Rom Rini, Bill Davidsen
Matt Mackall announced:
This is the first release of a new kernel tree dubbed '-tiny' (someone
already took -mm). The aim of this tree is to collect patches that reduce
kernel disk and memory footprint as well as tools for working on small
systems, an area Linux mainstream has been moving away from since Linus got
a real job. Target users are things like embedded systems, small or legacy
desktop folks, and handhelds.
To get the ball rolling, I've thrown in about 50 patches that trim various
bits of the kernel, almost all configurable, and a fair number may
eventually be appropriate for mainline. All the config options are
currently thrown under CONFIG_EMBEDDED and many of the minor tweaks are
covered under a set of config options called CONFIG_CORE_SMALL,
CONFIG_NET_SMALL, and CONFIG_CONSOLE_SMALL.
Nifty things I've included:
+ building with -Os
+ 4k process stacks (via -wli)
+ configurable removal of printk, BUG, and panic() strings
+ configurable HZ
+ configurable support for vm86, core dumps, kcore, sysfs, aio, etc.
+ a very nice kmalloc auditing system via /proc/kmalloc
+ auditing of bootmem usage
+ a system for counting inline instantiations
+ my netpoll/netconsole patches
+ my drivers/char/random fixups
Some items on my todo list:
+ borrow kgdb from -mm
+ merge my netpoll-based kgdb-over-ethernet
+ pageable kernel memory for a select subset of the kernel
+ reduced functionality vt for small gui systems
+ generic lookup/hash management code
How small is -tiny? It's hard to quantify as it's all configurable and some
functionality is more important than others, but my current test config has
full IPv4 net stack and most other important functionality and will boot
comfortably on a 4M x86 box with about 2M free+buffers+cache.
Bug reports, suggestions, and patch submissions are welcome!
The patch, currently against 2.6.0-test11, can be found at:
http://selenic.com/tiny/
Tom Rini replied, "I'd like to suggest you check out the "tweaks" idea I tossed
out here: http://www.ussg.iu.edu/hypermail/linux/kernel/0211.0/2229.html If
this sounds interesting, I've got a version of the patch (albeit old and not
applying directly right now I bet) that moved things into header files and got
all of the dependancy stuff correct except for the initial run (so I think I
was forcing an update with any make invocation, but there were no spurious
recompiles)." Matt said, "Looks cool. My only worry is that to do it right, it
has to make some fairly sweeping changes. I'm trying to keep the stuff in -tiny
fairly small and independent so that stuff can be cherry-picked, but if we can
get a consensus that "tweaks" is a good direction for mainline, it might prove
useful for some of the stuff I'm doing with CONFIG_CORE_SMALL and friends now."
Tom replied, "part of the problem that came up when this was brought up during
2.5 is that adding a whole bunch of CONFIG options for things Just Won't Happen
(too complex, PITA, etc). OTOH however, lots of stuff like that keeps getting
in." And Bill Davidsen replied, "But now we have a config section for disabling
things which may not be needed in embedded systems. So there's a fair chance
that tweaks and such can be accepted as long as they're in the area where most
will never go." But Tom said this was also true when the question came up in
2.5.
5. Revised 'Unreliable' Kernel Locking Guide
11 Dec - 15 Dec (14 posts) Archive Link: "[DOCUMENTATION] Revised Unreliable
Kernel Locking Guide"
People: Rusty Russell
Rusty Russell announced:
OK, I've put the html version up for your reading pleasure: the diff is
quite extensive and hard to read.
http://www.kernel.org/pub/linux/kernel/people/rusty/kernel-locking/
A bunch of folks were happy to see this, and offered corrections and
suggestions.
6. Larry Pulls Another Larry
14 Dec - 21 Dec (33 posts) Archive Link: "RFC - tarball/patch server in
BitKeeper"
Topics: Version Control
People: Larry McVoy, Larry McVoy , Pavel Machek
Larry McVoy announced:
I've prototyped an extension to BitKeeper that provides tarballs and
patches. The idea is to make it possible for all trees hosted by bkbits.net
provide access to the data with a free client (included below in prototype
form).
The system is simplistic, it just provides a way to get the most recent
sources as a tarball and then any later updates as a patch. There is no
provision for generating diffs, editing files, merging, etc. All of that is
something that you can write, if you want, using standard tools (think hard
linked trees).
Before rolling this out, I want to know if this is going to (finally) put
to rest any complaints about BK not being open source, available on all
platforms, etc. You need to understand that this is all you get, we're not
going to extend this so you can do anything but track the most recent
sources accurately. No diffs. No getting anything but the most recent
version. No revision history.
If you want anything other than the most recent version your choices are to
use BitKeeper itself or, if you want the main branches of the Linux kernel,
the BK2CVS exports. This is not a gateway product, it is a way for
developers to track the latest and greatest with a free (source based)
client. It is not a way to convert BK repos to $SCM.
If the overwhelming response is positive then I'll add this to the
bkbits.net server and perhaps eventually to the BK product itself.
Chris Frey and Pavel Machek drew attention to the license Larry used for the
software:
Licensed under the NWL - No Whining License.
You may use this, modify this, redistribute this provided you agree:
+ not to whine about this product or any other products from BitMover,
Inc.
+ that there is no warranty of any kind.
+ retain this copyright in full.
7. Status Of CONFIG_USB_DC2XX In 2.6
14 Dec (2 posts) Archive Link: "dc2xx.c ported yet?"
Topics: Hot-Plugging, USB
People: Joshua Kwan, David Ford
Joshua Kwan asked, "Hi, I noticed that CONFIG_USB_DC2XX is not available in the
2.6 tree and dc2xx.c doesn't exist either. However, it's available in 2.4. Does
the driver need to be ported? If so, can I help?" David Ford replied that there
was no need for a port. He said:
It is accessed via libusb these days opening /proc/bus/usb/*/*
Emerge (apt-get, etc, as per your distro of choice) something like gphoto2
which should include libusb by dependancy and setup hotplug.
8. Update Of Experimental Net Driver
15 Dec - 18 Dec (4 posts) Archive Link: "[BK PATCHES] 2.6.x experimental net
driver updates"
Topics: Networking
People: Jeff Garzik, Stephen Hemminger, Adrian Bunk, Francois Romieu, Krzysztof
Halasa
Jeff Garzik announced:
Another edition of net driver updates.
Summary of new changes:
+ revert skfddi janitorial patches. no skfddi changes are included in
this patchkit anymore. Stephen Hemminger has a much better skfddi patch
which obsoleted the already-merged skfddi changes.
+ atmel wireless SKB leak fix
+ 3c574_cs deadlock fix
+ bonding destruction fix
+ more work from Al making net_device allocation dynamic and sane
(including fast, const-offset private structure allocation for drivers)
+ sk98lin update from vendor
+ TG3 update from DaveM
+ new pc200syn WAN driver from WAN maintainer Krzysztof Halasa
+ r8169 fixes from Francois Romieu
Summary of patchkit:
+ new e100 driver (rewritten from scratch)
+ new nVidia nForce NIC driver
+ new pc200syn WAN driver
+ tg3 bug fixes
+ r8169 major bug fixes
+ e1000 minor updates / fixes
+ sk98lin vendor updates / fixes
+ misc bug fixes
+ 8139too NAPI support
+ tulip NAPI support
+ netconsole / netdump support
+ net_device allocation and reference counting work
Patch:
http://www.kernel.org/pub/linux/kernel/people/jgarzik/patchkits/2.6/
2.6.0-test11-bk11-netdrvr-exp1.patch.bz2
Full changelog:
http://www.kernel.org/pub/linux/kernel/people/jgarzik/patchkits/2.6/
2.6.0-test11-bk11-netdrvr-exp1.log
BK repo:
bk://gkernel.bkbits.net/net-drivers-2.5-exp
After a bug report from Adrian Bunk, Jeff posted an updated patch (http://
www.kernel.org/pub/linux/kernel/people/jgarzik/patchkits/2.6/
2.6.0-test11-bk11-netdrvr-exp2.patch.bz2) and changelog (http://www.kernel.org/
pub/linux/kernel/people/jgarzik/patchkits/2.6/
2.6.0-test11-bk11-netdrvr-exp2.log) ; which Adrian confirmed worked for him.
9. Status Of -mm Tree And 2.6
17 Dec - 19 Dec (17 posts) Archive Link: "2.6.0-test11-mm1"
People: Andrew Walrond, Andrew Morton, Thomas Molina, Christian Axelsson
Andrew Morton put out 2.6.0-test11-mm1, and Andrew Walrond asked, "What are
your intentions with -mm when you take over 2.6? Is any of -mm getting into 2.6
before 2.6.0 release? Is it mainly queued for 2.6.1?" Christian Axelsson also
wanted to know, and Andrew M. replied, "We'll start merging it up after 2.6.0.
It'll be quite a lot of work, actually - a lot of things have been parked in
-mm for some time and may not have had sufficiently wide testing, especially on
non-i386. I need to ask the originators and others to re-review and retest some
things." Thomas Molina said he was concerned that the sheer quantity of stuff
queued for post-2.6.0 was becoming likely to make 2.6.1 much less stable than
2.6.0; and this worried him. But Andrew M. said that most of the stuff in the
queue represented real fixes for real problems, and that it was mainly just a
question of figuring out the best way to merge them all so the least breakage
would occur. He also suggested that folks do a lot of testing on the -mm tree,
since that was where new patches would go prior to each new 2.6 release.
10. Linux 2.6.0 Released
17 Dec - 18 Dec (47 posts) Archive Link: "Linux 2.6.0"
Topics: Big Memory Support, Bug Tracking, Disk Arrays: LVM, Disk Arrays: RAID,
Disks: IDE, FS: ext2, SMP
People: Linus Torvalds, Andrew Morton, Trond Myklebust
Linus Torvalds announced:
"The beaver is out of detox"
- Anon
This should not be a big surprise to anybody on the list any more, since
we've been building up to it for a long time now, and for the last few
weeks I haven't accepted any patches except for what amounts to fairly
obvious one-liners.
Anyway, 2.6.0 is out there now, and the patch from -test11 is a swelte 11kB
in size. It's not the totally empty patch I was hoping for, but judging by
the bugs I worked on personally, things are looking pretty good.
To give you an example, one of the nastier bugs that we chased for the last
five weeks was a bug that could only be reproduced reliably on a 16- or
32-way system, and only when the system had flaky disks. Putting in
known-good disks made the problem disappear. Similarly, compiling the
kernel with another compiler made the problem disappear.
It turned out to be a really subtle bug wrt SMP ordering and stack
allocation, and lots of thanks to Ram Pai for gathering all the information
that eventually led to it being fixed. The fix was a one-liner and a big
comment - but my point is that the quality of bugs has been pretty high
lately, and we feel that we're in pretty good shape.
Andrew has written up some caveats and pointers to information about 2.4.x
vs 2.6.x changes, and I'll let him post that. Some known issues were not
considered to be release-critical and a number of them have pending fixes
in the -mm queue. Generally they just didn't have the kind of verification
yet where I was willing to take them in order to make sure a fair 2.6.0
release.
NOTE! I'll continue to keep track of the 2.6 BK tree until we're closer to
the time when we literally split it for 2.7.x, because both Andrew and I
are pretty comfortable with our respective toolchains. But Andrew is the
stable tree maintainer, so everything should be approved by him at this
point. Think of the -mm tree as the staging area, and mine as a release
tree. We'll work together, but Andrew is boss.
(BK merging will have to go through some approval format, we'll see how
that works out exactly).
A multitude burst into applause across the world. Regarding Andrew Morton's
list of caveats, Andrew said:
It's actually rather short because I started late. See below.
There are also the "must-fix" and "should-fix" lists of items which we have
identified as still on the 2.6 todo list. These are at
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/must-fix/must-fix-7.txt
and ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/must-fix/
should-fix-7.txt
+ The 2.6.0 kernel has undergone several weeks of stabilization and we
expect it to run well on server-class machines.
Desktops and laptops may have more trouble at this time because of the
much wider range of hardware and because of as-yet unimplemented fixes
for the hardware and BIOS bugs from which these machines tend to
suffer.
During the 2.6.0 stabilization period a significant number of less
serious fixes have accumulated in various auxiliary kernel trees and
these shall be merged into the 2.6 stream after the 2.6.0 release. Many
of these fixes appear in Andrew Morton's "-mm" tree, at
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/
+ Please report any problems to the appropriate mailing list. If you do
not know which list to use, send the report to
[email protected] and it should reach the right person. Some
active subsystem mailing lists are:
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
Alternatively, kernel bug reports may be entered into the kernel bug
tracking system at http://bugme.osdl.org/
+ There are significant changes in the module subsystem, the LVM (Device
Mapper) and RAID subsystems. Details about these and many other kernel
changes are presented in David Jones's kernel upgrade document at
http://www.linux.org.uk/~davej/docs/post-halloween-2.6.txt
Users who are testing 2.6 kernels for the first time should consult
this document.
+ The ATA RAID drivers (eg the HighPoint RAID driver) have not been
ported to the new BIO code and are not available under the 2.6 kernel
at this time.
+ cryptoloop doesn't work on highmem machines. Fixes exist in -mm and are
queued for 2.6.1.
+ There are known performance problems with the default disk I/O
scheduler which show up when the workload is performing small, random
reads and writes (ie: database loads). Largely fixed in -mm.
In general, the "deadline" I/O scheduler is, and shall remain somewhat
faster than the default "anticipatory" I/O scheduler with these sorts
of workloads. Database admins should consider adding the "elevator=
deadline" kernel boot parameter.
+ There are performance problems due to misbehaviour in the readahead
code which also impact database-style workloads. Fixed in -mm, queued
for 2.6.1.
+ There are a larger number of as-yet unmerged frame buffer driver fixes.
Trond Myklebust asked, "Will you be posting a plan for how you want the 2.6.x
series to proceed? I gather I'm not alone in having a load of patches that I'd
like to send you ASAP..." Andrew replied:
I believe that the processes we've all been using for the past year have
worked well (invitation here for people to disagree). So any changes we
make to that process shouldn't be arbitrary.
I expect that until 2.7.0 forks, Linus and I shall continue to work 2.6.x
in much the same manner - that's what I'd prefer, anyway.
Obviously, the threshold for merging things into 2.6 becomes higher, and
large changes will be rejected pending more review and testing. I shall
continue to run an alternate tree for the provision of that testing
service.
Generally, we should expect that there will be large changes across the 2.6
lifetime - it is unrealistic to believe otherwise. We just need to find the
processes to absorb those changes (and feed them into or from 2.7.x)
without breaking stuff. We've done that fairly well across 2.5 I think.
We should sit tight for the next week or so, in case we need to rush out a
2.6.1 for brown-bag bugs. After that I need to shrink the -mm patchset
rather a lot.
11. libsysfs 0.4.0 Released
18 Dec (1 post) Archive Link: "[ANNOUNCE] libsysfs v0.4.0"
Topics: FS: devfs, FS: sysfs, Klibc
People: Ananth N Mavinakayanahalli
Ananth N Mavinakayanahalli announced:
Release 0.4.0 for libsysfs is now available at:
http://linux-diag.sourceforge.net
A number of changes have been made in this release which will require a few
modifications to applications already using the library. (udev-009 already
has a bulk of these changes).
Here are the important additions/changes:
+ Postponed reading directories and attributes until absolutely
necessary.
+ Structure elements that are lists or references to structures are not
populated by default. APIs have now been provided to populate them.
+ All "open" functions that take absolute path as argument now have a
"_path" suffix.
+ Provided attribute "refresh" functions to read in updated attribute
values.
+ Changes for klibc compatibility.
+ Provided APIs to retrieve device/class_device "parent".
+ Added manpages for lsbus and systool (Thanks to Martin Pitt).
Please visit http://linux-diag.sourceforge.net/Sysfsutils.html for more
information.
12. x86_64-2.6.0-1 Released
18 Dec (1 post) Archive Link: "x86_64-2.6.0-1 released"
Topics: Executable File Format, FS: JFS, FS: sysfs, Power Management: ACPI, SMP
, Serial ATA
People: Andi Kleen
Andi Kleen announced:
The first x86-64 patchkit for the 2.6.0 linux kernel has been released. I
normally don't announce patchkits to linux-kernel, but a lot of people
don't seem to know about them. The patchkit has fixes for many serious bugs
(including data corruption iossues) on x86-64 that didn't make it in
official 2.6.0. Please don't bother reporting any x86-64 problems to me if
you didn't apply the patchkit first.
Hopefully now that the trees are more open again most of this can migrate
into the official tree, depending on the policy enforced by Linus/Andrew.
This version just has a few minor fixes against the last patchkit release
(x86_64-2.6.0test11-3)
ftp://ftp.x86-64.org/pub/linux/v2.6/x86_64-2.6.0-1.bz2
df65fee5a0388a036d324cb9b16bd778 x86_64-2.6.0-1.bz2
ChangeLog since x86_64-2.6.0test11-3:
+ Mark some more non 64bit clean drivers !64BIT
+ Remove dump_sg in pci-gart.c again
+ Fix inefficiency in find_next_bit
Older Changelog is available in
ftp://ftp.x86-64.org/pub/linux/v2.6/RELEASE-NOTES
Some known issues:
+ Taskfile IO can hang SuSE hwscan. Better disable it for now.
+ Taskfile IO can cause disk corruption too.
+ NMI watchdog runs too often (HZ instead once a second) (still true?) [I
think that's fixed now, but needs verifying]
+ Machine Check calls printk currently, but that can deadlock when the
MCE occurs inside any of the console locks.
+ sysfs support for arch/ may not be complete.
+ 32bit SYSCALL seems to still have problems with some programs (disabled
currently)
+ Some reports of persistent segfaults after stress tests (also seen once
here, need to be reproduced). Could be IOMMU overflow.
+ Mysterious timer bug in some cases. Shortly in or after bootup the
timer lists gets corrupted in some configuration. Seems to depend on
how long the bootup takes.
+ JFS seems to corrupt file systems quickly (generic 64bit bug)
[maintainer cannot reproduce it]
+ WCHAN seems to be broken
+ Suspend often doesn't initialize video after wakeup Generic problem,
needs a lot of effort to fix properly. The graphic card has to be
POSTed properly, which is quite complicated.
+ MPT fusion driver breaks when iommu merging is disabled (run with iommu
=merge) A workaround for this is enabled by default now. Underlying bug
still unfixed. This bug seems to only occur on some specific machines,
most MPT fusion users probably don't have to worry about it. Seems to
be a driver bug.
+ Realtek 8169 driver does not support >4GB (patch exists, should be
merged by network driver maintainer)
+ Nvidia and VIA boards are forced to IO-APIC off to work around ACPI
bugs. This will be a major problem once SMP boards with these chipsets
are out.
+ Some boards don't set the wall clock correctly
+ G400 DRM crashes machine
+ VIA SATA doesn't work
+ Some people report disk corruptions with IOMMU. Not able to reproduce
it. It seems to happen on some block device drivers who have a very
deep queue. Mostly these devices don't need an IOMMU (3ware is a
prominent exception) because they support 64bit IO. Unfortunately many
people still run with CONFIG_IOMMU_DEBUG which will force the IOMMU
support for every device. Changing the IOMMU flush to flush on every
mapping seems to fix it. Currently there are workarounds active that
check for Qlogic and 3ware and do that. Anybody still seeing this
please try with iommu=fullflush and report back. Underlying bug still
undebugged.
+ Scheduler does not work well with NUMA (testcase multithreaded STREAM)
It does not distribute threads quickly enough to all CPUs, which leads
to memory getting allocated on the wrong nodes.
+ Some motherboard/cpu combinations do not reboot automatically
+ IPSec netlink setup code is not 32bit emulation clean
+ iptables is not 32bit emulation clean
+ gettimeofday gets non monontonous when ntpd corrects drift
+ valgrind does not run even with linux32 --3gb. Figure out what is
different.
+ [An a.out emacs also doesn't run. Probable the same difference]
13. Itanium Maintainership
18 Dec (1 post) Archive Link: "[PATCH] update sn2 MAINTAINERS file entry"
People: Jesse Barnes, John Hesterberg
Jesse Barnes posted a patch listing himself as the "SN-IA64 (Itanium)
SUB-PLATFORM" maintainer, instead of John Hesterberg.
We Hope You Enjoy Kernel Traffic
Kernel Traffic is hosted by the generous folks at Tux.Org. All pages on this
site are copyright their original authors, and distributed under the terms of
the GNU General Public License, version 2.0.