Kernel Traffic #291 by Zack Brown
[email protected] Tue, 04 Jan 2005 14:25:53 -0800
| Newsgroups | gmane.linux.kernel.kernel-traffic |
|---|---|
| Message-ID | <[email protected]> |
Kernel Traffic #291 For 4 Jan
By Zack Brown
Table Of Contents
* Standard Format
* Text Format
* XML Source
* Mailing List Stats For This Week
* Threads Covered
1. 1 Dec 2004 - 16 Dec 2004 (108 Possible Changes To Kernel Stable/
posts) Unstable Development Methods
2. 11 Dec 2004 - 22 Dec 2004 (126 Dynamically Defined HZ Value Coming To
posts) 2.6
3. 13 Dec 2004 - 17 Dec 2004 (25 Linux 2.6.10-rc3-mm1
posts)
4. 14 Dec 2004 - 22 Dec 2004 (11 Status Of ioctls In Linux
posts)
5. 16 Dec 2004 (3 Linux 2.4.29-pre2 Released
posts)
6. 16 Dec 2004 - 21 Dec 2004 (21 Linux 2.6.9-ac16 Released
posts)
7. 16 Dec 2004 (4 Which 2.6 Branch To Use
posts)
8. 19 Dec 2004 - 23 Dec 2004 (14 usbmon Debugging Tool; Location Of
posts) Debug Directory
9. 22 Dec 2004 (1 Linux 2.4.29-pre3 Released
post)
Mailing List Stats For This Week
We looked at 3430 posts in 21201K.
There were 555 different contributors. 313 posted more than once. 164 posted
last week too.
The top posters of the week were:
* 465 posts in 2064K by Ingo Molnar
* 111 posts in 770K by "K.R. Foley"
* 111 posts in 449K by Lee Revell
* 103 posts in 583K by Greg KH
* 84 posts in 896K by "Rui Nuno Capela"
* Full Stats
1. Possible Changes To Kernel Stable/Unstable Development Methods
1 Dec 2004 - 16 Dec 2004 (108 posts) Subject: "page fault scalability patch V12
[0/7]: Overview and performance"
People: Linus Torvalds, Jeff Garzik, Andrew Morton, Christoph Lameter
Christoph Lameter posted some page fault performance improvements, which Linus
Torvalds liked, but Linus said, "I don't want to apply this before I get 2.6.10
out the door, but I'm happy with it." Jeff Garzik asked, "Does that mean that
2.6.10 is actually close to the door?" And Andrew Morton replied:
We need an -rc3 yet. And I need to do another pass through the
regressions-since-2.6.9 list. We've made pretty good progress there
recently. Mid to late December is looking like the 2.6.10 date.
We need to be be achieving higher-quality major releases than we did in
2.6.8 and 2.6.9. Really the only tool we have to ensure this is longer
stabilisation periods.
Of course, nobody will test -rc3 and a zillion people will test final
2.6.10, which is when we get lots of useful bug reports. If this keeps on
happening then we'll need to get more serious about the 2.6.10.n process.
Or start alternating between stable and flakey releases, so 2.6.11 will be
a feature release with a 2-month development period and 2.6.12 will be a
bugfix-only release, with perhaps a 2-week development period, so people
know that the even-numbered releases are better stabilised.
We'll see. It all depends on how many bugs you can fix in the next two
weeks ;)
I expected a big discussion about this, but no. The thread veered off into ways
of doing regression testing, and automating test-suites for each kernel
release. Only a few folks had any comments to make about the possible change of
development process, and there was no significant discussion.
2. Dynamically Defined HZ Value Coming To 2.6
11 Dec 2004 - 22 Dec 2004 (126 posts) Subject: "dynamic-hz"
Topics: Power Management: ACPI
People: Andrea Arcangeli, Andrew Morton, Pavel Machek, Con Kolivas
Andrea Arcangeli said:
The below patch allows to set the HZ dynamically at boot time with command
line parameter. HZ=1000 HZ=100 HZ=333 any other value just works (though
certain value may cause more or less drift to the system time advance/
decrease).
Is there any interest from the mainline developers to merge this into 2.6?
I'm getting requests for this feature being forward ported to 2.6 (both for
batch jobs and for the powersaved that can trim the hz down to 80mhz). It
should be up to the user to choose the HZ like it was in 2.4-aa.
This patch is quite intrusive since many HZ visible to userspace have to be
converted to USER_HZ, and most important because HZ isn't available at
compile time anymore and every variable in function of HZ must be either
changed to be in function of USER_HZ or it must be initialized at runtime.
The code has debugging code (optional at compile time) so that I can
guarantee that there cannot be any regression.
Technically this makes a lot of sense to me (well, you can guess why I
implemented it in the first place), at least in archs where one cannot
reprogram the timer chip in a performant way (to stop timer ticks
completely until the next posted timer). This is in production for years in
SLES8 btw.
http://www.kernel.org/pub/linux/kernel/people/andrea/kernels/v2.4/2.4.23aa3
/9999_zzz-dynamic-hz-5.gz
Several folks expressed interest in this, and Pavel Machek asked what the
overhead was. Andrea replied, "It's not a measurable difference." Con Kolivas
pointed out (and Adrea agreed) that the value of this patch would not be seen
by desktop users. Andrea acknowledged:
Sure, desktop doesn't need this, the reason somebody is asking for it, is
that the desktop stuff hurted some other non-desktop usages. Infact my 2.4
tree was setting by default HZ=1000 if 'desktop' paramter was passed to the
kernel (so that I could lower the timeslice accordingly too, without losing
the effect of the nicelevels between nice 0 and +19).
The other new case where I'm asked for this feature is again not the
desktop but the high end laptop with cpu throttling down to 80mhz, and what
Pavel mentioned about the lower consumption. Perhaps we could do variable
HZ there, though I doubt it has a pit that can be reprogrammed with sane
performance.
Very few people are going to get real benefit from HZ=1000, but I certainly
agree it worth to keep HZ=1000 on desktops since on a idle machine the
downside of the more frequent irq sure isn't measurable, while having
shorter timeslices may be visible with many tasks, and shorter timeslices
requires faster HZ to preserve the nicelevels.
There was a fairly long discussion about the potential benefits of Andrea's
patch (or lack thereof), and at one point Andrew Morton remarked:
There are apparently some laptops which exhibit appreciable latency between
the start of ACPI sleep and actually consuming less power. The 1ms wakeup
frequency will shorten battery life on these machines significantly. (I
forget the exact numbers - Len will know).
So I guess we're going to have to do this sometime - I don't think there's
any other solution apart from going fully tickless, which would be
considerably more intrusive.
We should retain the option of compile-time constant HZ - it's easy enough.
Probably the patch already does that.
The discussion of merits continued for some time, though Andrew's post seemed
to decide the issue in favor of the patch; a final interesting tidbit came
regarding the minimum possible HZ value, when Pavel said that he'd "tried
defining HZ to 10 once, and there are some #if arrays in the kernel that
prevented me from doing that." Andrea replied, "I guess you're right and the
minimum is HZ=12. I'm pretty sure I could go down to 25, perhaps the absolute
minium was 12 and not 10."
3. Linux 2.6.10-rc3-mm1
13 Dec 2004 - 17 Dec 2004 (25 posts) Subject: "2.6.10-rc3-mm1"
Topics: Kernel Release Announcement, Software Suspend
People: Andrew Morton, Nigel Cunningham
Andrew Morton announced Linux 2.6.10-rc3-mm1, saying:
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10-rc3/
2.6.10-rc3-mm1/
+ Lots of new patches, lots of little fixes all over the place.
+ Probably the major change is the readahead rework, which may have
significant performance impacts on some workloads. Not necessarily
good, either...
+ See below for the list of 31 patches which I have pending for 2.6.10.
If there are other patches here which should go in, please let me know.
Kasper Sandberg pointed out that there seemed to be a lot of swsusp1 work going
into 2.6; he suggested that swsusp2 should be merged instead. Andrew referred
Kasper to the discussion covered in Issue #289, Section #2 (24 Nov 2004:
Status Of Software Suspend) , saying that Nigel Cunningham's work on Suspend2
was not yet ripe for inclusion. Nigel replied that he'd been working to address
many of the issues raised in that thread, and that he'd be submitting a new
patch-set soon.
4. Status Of ioctls In Linux
14 Dec 2004 - 22 Dec 2004 (11 posts) Subject: "ioctl assignment strategy?"
Topics: FS: sysfs, Ioctls
People: Greg KH, Chris Friesen, Alan Cox, Lee Revell, Olivier Galibert
Al Hooton asked about the policies for official ioctl assignment, having looked
in all the docs and list archives he could find; Greg KH replied, "why do you
want to use an ioctl? ioctls are generally frowned upon these days, and trying
to add a new one is a tough and arduous process, that is not for the weak, or
faint of heart." Chris Friesen asked, "what other options would you suggest for
arbitrary char devices to allow for control that doesn't fit nicely into the
read/write paradigm?" Greg said, "Rethink the way you want to control your
device. Seriously, a lot of ioctls can be broken down into single device files,
single sysfs files, or other such things (a whole new fs as a last resort too.)
" Chris asked what the big problem was with ioctls, and Greg said, "ioctls are
basically a simple way to add any kind of syscall to the kernel. They also have
nasty 32/64 bit issues. Because we want to have well-defined syscalls that work
on all platforms, and not any arbitrary type of call, it is good to restrict
ioctls." Alan Cox, close by, also said:
Ioctls do have some serious problems that make them nice to avoid
1. Each ioctl handler has its own data structures. While you could write
XML objects to encapsulate this in write() it is also true in many
cases that there is a simple logical expression of the operation - eg
configuration options tend to fit well into files as you can see with /
sysfs - unless they need to be atomic transactions with rollback at
which point the same people who decry ioctl will hate embedding sqlite
in the kernel
Seriously however - multiple structures means multiple validation
functions means more new code and more errors. It's a lot easier to get
ioctls wrong. There are a lot of things that don't need to be ioctl. A
look at security history says in general "ioctls cause bugs"
2. Ioctl structures tend to be binary. Welcome to 32/64bit emulation hell.
Good design can avoid this. Good design is not XML for this purpose.
3. Ioctl is unstructured and so each ioctl is a new mystery to the
programmer. We all know how write works and in many cases echo "451" >
/proc/sys/vm/blah is quite obvious.
4. It's hard to ioctl from the command line or scripts
The "ioctls are evil" blind hate department really annoy me however because
like all extreme views the truth very rarely fits their model
Lee Revell added, "Another objection was that all ioctls take the BKL. I think
you did not hear this one raised as much because it reflected a deficiency in
the system. But now at least 2 different solutions have been posted for
BKL-less ioctls so that objection is no longer valid." Olivier Galibert also
added to Alan's list, "ioctls don't have a reliable size information in the
call, making them hard to forward over a network in a generic way, or even pass
to another userspace process."
5. Linux 2.4.29-pre2 Released
16 Dec 2004 (3 posts) Subject: "Linux 2.4.29-pre2"
Topics: FS: XFS, Security, USB
People: Marcelo Tosatti, Adam Heath
Marcelo Tosatti announced Linux 2.4.29-pre2, saying:
It contains a relatively small number of changes: XFS sync, SPARC64 sync,
USB gadget updates, couple of libata fixes, amongst others.
Also a networking update, containing fixes for following recently
discovered security issues:
CAN-2004-1137
IGMP vulnerabilities - local priveledge escalation and remote DoS:
http://isec.pl/vulnerabilities/isec-0018-igmp.txt
CAN-2004-1016
scm_send local DoS:
http://isec.pl/vulnerabilities/isec-0019-scm.txt
Adam Heath remarked, "I don't know if you've been following, but it was
recently discoverd that on smp, if multiple processes read from /dev/urandom at
the same time, they can get the same data. Theodore Y. T'so posted a patch to
fix this for 2.6, and someone else told me this problem has existed all the way
back to 1.3. This is a security issue, and should be included in the 2.4 tree."
Marcelo replied, "Yes, I'm aware of it, Tytso is working on v2.4 backport of
the correct locking. Thanks for the reminder!"
6. Linux 2.6.9-ac16 Released
16 Dec 2004 - 21 Dec 2004 (21 posts) Subject: "Linux 2.6.9-ac16"
People: Alan Cox, Arjan van de Ven
Alan Cox announced Linux 2.6.9-ac16, saying:
Further small fixes for different minor things. A merge of some of the
small cleanups from Fedora work and also the fixes for the igmp and vc
holes.
Arjan van de Ven is now building RPMS of the kernel and those can be found
in the RPM subdirectory and should be yum-able. Expect the RPMS to lag the
diff a little as the RPM builds and tests do take time.
The HPT366 rework project is also not ready (its gone back to the drawing
board until the current panic is over if you are a volunteer and wondered
what is up).
ftp://ftp.kernel.org/pub/linux/kernel/people/alan/linux-2.6/2.6.9/
7. Which 2.6 Branch To Use
16 Dec 2004 (4 posts) Subject: "2.6 flavours"
Topics: Version Control
People: Maciej Soltysiak, Alan Cox, Andrew Morton
Maciej Soltysiak remarked:
AFAICS the -ac tree should be the most stable of all kernels, right?
-mm is totally bleeding edge
-bk the same
-ck is experimental
Others are experimental too.
Looking at the changelogs, the most reasonable kernel to use for generic
use are the -ac kernels, which I am going to use since 2.6.10 as long as
Alan is kindly going to continue his fabulous work.
I swear not to use 2.6.10 until Alan publishes 2.6.10-ac1 :-)
Someone pointed out that Andrew Morton's -mm tree might be bleeding edge, but
that Andrew made a conscious choice about when to do each release, and that
this choice probably took stability into account. Alan Cox said:
2.6.x-mm is more like some of the work the old 2.4-ac did in merging new
stuff (its also worth noting that 2.4-ac ended up more stable than 2.4 at
times so -mm might be stable)
The -ac tree is trying to be fairly conservative. When I merge stuff that
is a little less conservative because it has to be done then I've tried to
put a note in the relnotes for that release warning people its more testing
grade.
8. usbmon Debugging Tool; Location Of Debug Directory
19 Dec 2004 - 23 Dec 2004 (14 posts) Subject: "My vision of usbmon"
Topics: Hot-Plugging, USB
People: Pete Zaitcev, Nick Piggin, Greg KH, Jeff Garzik
Pete Zaitcev said:
This is usbmon which I cooked up because I got tired from adding dbg()'s
and polluting my dmesg. I use it to hunt bugs in USB storage devices so
far, and it's useful, although limited at this stage.
I looked at the Harding's USBmon patch, and I think he got a few things
right. The main of them is that I underestimated the benefits of placing
the special files into the filesystem namespace. When we discussed it with
Greg in the airport, we decided that having some sort of Netlink-style
socket would be the best option. I decided to make a u-turn and attach
those sockets into the namespace (currently under /dbg, but it can change).
What this buys us is:
1. cat(1): never bet against it. It's too handy. And netcat is just not
the same.
2. USBmon userland in Java. Just try to hack in JNI a little as I have and
you'll see.
He also got some parts wrong. They are small things, but unfortunately,
pervasive. For example, he relies on urb->dev, which is not a good idea in
case of HCD which zero it far away from the completion call site, such as
usb-ohci in 2.4. And it's error-prone and a maintenance problem to audit
all HCDs and add usbmon calls. Races by design, too. Small things like
that, but many. Eventually, I wrote everything from scratch. It's rather
embarrassing that I could not save USBmon and gave in to NIH.
Since it's a big NIH, usbmon is not compatible with USBmon's userland. It
can be made compatible, but it needs a small adaptation layer, because
Harding aggregated at a device, and I do it on a bus (I can explain why,
but it's rather long; it has to do with hotplug and races).
The architecture to support various output formats is present. Obvious
candidates are Old USBmon format and a Binary format. But it's not done.
Please ask if something is not obvious in the code.
Greg KH loved all of this, and said he'd add it to the official tree whenever
Pete felt it was ready.
Nick Piggin asked, "Is there any reason why these debug filesystems are going
under the root directory? Why not /sys/debug or /sys/kernel/debug or something?
" Greg said he didn't really care, but Jeff Garzik said that someone should
pick a single location, and use that consistantly. Greg replied:
Bah, fine, make me make a policy decision, damm I tried hard to resist :)
Anyway, here's a patch I just applied that creates the /sys/kernel/debug
directory (you need a small patch that exports the proper subsys for this
to work, if anyone wants that too, I'll send it.) Now, if you want, you can
mount debugfs at this location.
Now either this is going to make people happy, or make them mad I didn't
pick their proposed location. Either way, I'm going on vacation in 2 days,
so I will not be around to hear the screams...
9. Linux 2.4.29-pre3 Released
22 Dec 2004 (1 post) Subject: "Linux 2.4.29-pre3"
Topics: FS: NFS
People: Marcelo Tosatti
Marcelo Tosatti announced Linux 2.4.29-pre3, saying:
Here goes the third -pre of 2.4.29.
More importantly this release contains a correction for the "int 0x80 hole"
security problem in AMD64 port (CAN-2004-1144).
It also contains a few important v2.6 backports (tty/ldisc and pty races),
some hardening patches from Solar (none of those are exploitable bugs, just
paranoic/early error detection), and a few networking updates.
This release should also fix the "NFS hang on unlink" issues present in
v2.4.28.
It should appear in the kernel.org mirrors in a few minutes.
We Hope You Enjoy Kernel Traffic
Kernel Traffic is grateful to be developed on a computer donated by Professor
Greg Benson and Professor Allan Cruse in the Department of Computer Science at
the University of San Francisco. This is the same department that invented
FlashMob Computing. Kernel Traffic is hosted by the generous folks at
kernel.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.