Kernel Traffic #285 by Zack Brown

[email protected] Sat, 27 Nov 2004 22:17:20 -0800
Newsgroups gmane.linux.kernel.kernel-traffic
Message-ID <[email protected]>
                        Kernel Traffic #285 For 26 Nov 

                                 By Zack Brown

Table Of Contents

  * Standard Format
  * Text Format
  * XML Source
  * Mailing List Stats For This Week
  * Threads Covered

    1. 31 Oct  - 4 Nov  (9       Big Serial Driver Update
                        posts)
    2. 3 Nov  - 10 Nov  (76      Some Discussion Of The Reasons To Support
                        posts)   Older Compilers
    3. 5 Nov  - 10 Nov  (81      Linux 2.6.10-rc1-mm3 Released
                        posts)
    4. 6 Nov  - 10 Nov  (9       PC100 Mouse Fix
                        posts)
    5. 6 Nov  - 10 Nov  (3       Conflicting License Of drivers/char/rocket.c
                        posts)   Resolved
    6. 7 Nov            (7       Linux 2.4.28-rc2 Released
                        posts)
    7. 8 Nov  - 10 Nov  (9       Bitkeeper Diff Enhancement
                        posts)
    8. 9 Nov            (1 post) Real-Time Security Module
    9. 10 Nov           (1 post) Linux PPC Mailing Lists Move To Ozlabs

Mailing List Stats For This Week

We looked at 1935 posts in 12486K.

There were 491 different contributors. 265 posted more than once. 215 posted
last week too.

The top posters of the week were:

  * 89 posts in 485K by Greg KH
  * 62 posts in 512K by Adrian Bunk
  * 45 posts in 207K by Andrew Morton
  * 33 posts in 127K by Bill Davidsen
  * 29 posts in 361K by Stelian Pop
  * Full Stats

 

1. Big Serial Driver Update
31 Oct  - 4 Nov  (9 posts) Archive Link: "[PATCH] Serial updates"
Topics: Power Management: ACPI, Version Control
People: Russell King, Andrew Morton, Linus Torvalds

Russell King said:

    Ok, here's a major serial update. Items covered in this update:

      + unuse register_serial/unregister_serial. Instead, please use
        serial8250_register_port() and serial8250_unregister_port() to talk to
        the 8250 driver.

        The old interfaces have several restrictions:

         1. do not allow the struct device associated with a port to be known
            to the tty layer.
         2. have various restrictions on the size of IO addresses (see the
            HIGH_BITS_OFFSET stuff - which incidentally 8250_pnp got wrong.)

      + provide a mechanism for 8250 platform ports to be dynamically
        registered. We do this via platform devices - either one or multiple
        platform devices. You can have none, one, or as many as you desire.
        8250.c couldn't care.
      + any ports listed in include/asm-*/serial.h will still be intialised in
        preference to platform device based ports for the time being. It is
        intended that everyone will move to using the platform device method.
      + this means that CONFIG_SERIAL_8250_NR_UARTS slightly changes
        definition. It is the number of _extra_ ports above those in include/
        asm-*/serial.h that 8250.h will support. If you have removed all ports
        from include/asm-*/serial.h, then it is obviously the total number of
        ports that 8250.c will support, and you need to make sure that it's
        large enough for your platform.
      + ppc64 broke in this merge. That's expected because I backed out benh's
        changes to the serial drivers. A "get you working again" patch is with
        benh as of last night pending his attention.

    The patch is about 50K, so won't fit through lkml, and is available here
    instead:

    http://www.arm.linux.org.uk/~rmk/misc/linus-serial.diff

    People who should test this patch as a minimum:

      + ia64 people (ACPI port discovery)
      + parisc people (GSC port discovery)
      + pnp using people

    Once this lot is in, I'll be following up with a set of patches which
    removes the serial device tables in include/asm-arm/arch-*/serial.h.

Some folks tested it with good success, while others had trouble applying the
patch to Linus Torvalds' current BitKeeper tree. There were a few patches
bandied back-and-forth, and at one point Russell asked Andrew Morton, "do you
want this set of serial changes to appear in one -mm release before hitting
Linus?" Andrew replied, "Not really - there's plenty of time to shake out any
problems." And Russell said, "Ok, I'll send a pull request imminently. For
those who don't want to wait, latest patch against Linus' tree is at: http://
www.arm.linux.org.uk/~rmk/misc/linus-serial.diff"

 

2. Some Discussion Of The Reasons To Support Older Compilers
3 Nov  - 10 Nov  (76 posts) Archive Link: "support of older compilers"
People: Matti Aarnio, Chris Wedgwood, Miles Bader, Christoph Hellwig, Adam
Heath, Martin J. Bligh, Ioan Ionita, Linus Torvalds, Xose Vazquez Perez, Chris
Friesen, Giacomo A. Catenazzi, Valdis Kletnieks, Timothy Miller

Timothy Miller asked why so much effort was being put into supporting older GCC
compiler versions. He asked, if folks were willing to upgrade their kernel,
wouldn't they also be willing to upgrade their compiler? Matti Aarnio pointed
out that the latest greatest compilers weren't always the greatest on other
architectures. Folks compiling Linux for SPARC and other hardware had to deal
with the fact that some compilers worked better than others. As he put it, "We
weird people of other architechtures do tend to get "somewhat" conservative
over the years in finding, and finally staying with a compiler that we have
learned to work. Multiple burned, forever shy..." Giacomo A. Catenazzi
suggested that forcing people to use the latest compilers would also expose the
bugs in those compilers, so they'd get fixed quicker. Chris Wedgwood countered,
"the problem is that I probably want to compile a working kernel *now*, not
when the GCC people finally get around to fixing the b0rkedness they added for
my architecture in gcc 3.2.3. So I get to keep 3.2.2 around until it's fixed.
(Feel free to replace 3.2.3 with whatever arch-dependent value you like)." And
Miles Bader added in support of this:

    this is particuarly true with fringe architectures.

    E.g., you're using a compiler for your CPU that has changes not in
    mainstream gcc, the vendor who made them is slow in updating to new gcc
    versions, and their changes are complex enough that you don't want to spend
    the manpower to port them yourself.

    You've got the GPL, so of course it's of course _possible_ to do the work
    yourself and get a newer gcc working, but sometimes it's really nice to
    also have the option _not_ to do that...

Elsewhere, Christoph Hellwig boiled the whole problem down to speed. People
wanted to use the older compilers, he said, "because the new compilers are a
lot slower." This ended up spawning a sizeable subthread. Adam Heath had to
clean out his ears before retorting, "You can't be serious that this is a
problem." But Martin J. Bligh said, "Yes, it is. Mostly they produce larger,
slower code too." And Chris challenged, "try it, say gcc 2.95 vs gcc 4.0 ... i
think last i checked the older gcc was over twice as fast" . Adam said he
didn't dispute that there was a speed difference; only that it really mattered.
He asked, "How often do you compile your kernel?" This turned out to be the
wrong thing to say on a kernel developer mailing list. As Chris Friesen pointed
out, many folks on the list performed multipler kernel compiles in a day. And
Valdis Kletnieks said that a lot of kernel developers used old hardware that
could take several hours to compile a kernel from source. Adam insisted several
times that the solution was just to purchase better hardware; but this didn't
go over so well either. Several folks offered to accept hardware gifts from
Adam, or suggested that he send hardware to folks who couldn't afford faster
systems.

At one point in that subthread, Ioan Ionita did point out that, "newer versions
of gcc, albeit slower at compiling, do tend to generate binaries that have
faster execution."

Elsewhere but close by, Linus Torvalds also took issue with Adam's assertion
that compile time was not a serious issue. Linus said:

    First off, for some people that is literally where _most_ of the CPU cycles
    go.

    Second, it's not just that the compilers are slower. Historically, new gcc
    versions are:

      + slower
      + generate worse code
      + buggier

    For a _long_ time, the only reason to upgrade gcc was literally C++
    support: basic C support was getting _worse_ with new compilers in pretty
    much every regard.

    Things seem to have improved a bit lately. The gcc-3.x series was basically
    not worth it for plain C until 3.3 or so.

Adam once more reiterated that people should just get faster hardware if they
wanted faster compile times. Linus replied that not everyone could get faster
hardware, and that there were other values besides speed when it came to
choosing a computer. "Even I tend to prioritize things like "nice and quiet"
over absolute speed," he said. But he also said, "Your "use new versions of gcc
even if it is slower" argument doesn't make any _sense_. If the new versions
aren't any better, why would you want to use them?" Xose Vazquez Perez replied,
"Maybe because older gccs are not maintained." Adam also replied to Linus,
saying he had no problem with people using older GCC versions if those versions
produced more correct code. His argument, he said, was only that speed of
compilation alone was not a good enough reason to use an older compiler. He
said, "If people don't bother using newer compilers, complaining about their
inefficiencies, then the issues will never be resolved." Linus came back at him
with:

    The only thing that matters is "what is the best tool". And yes,
    performance _is_ an issue in selecting the best tool. It's not the only
    one, but it's a major one.

    You said so yourself when you claimed people should just buy faster
    hardware. Again, the machine you use is just another tool. Why should you
    buy a faster machine if performance doesn't matter?

    I don't understand why you first dismiss performance, and then go on to
    ignore all the _other_ issues I told you about too.

    And your argument about "things will get fixed if you use the newer
    version" is also not actually true. First off, if it ain't broke in the
    older version, then things _literally_ will get fixed by not upgrading in
    the first place.

    And telling a developer "I'm not using your new version because it sucks
    compared to the old one" is actually a perfectly valid thing to do, and is
    likely to be _more_ motivational for the developer to get it fixed than
    having users that just follow the newest version like stupid sheep.

    There are people out there using Linux-2.0. There are probably people even
    using linux-1.2. And hey, that's OK. For older machines it may really be
    the right choice, especially if they are still doing the same thing they
    did several years ago. The notion that you somehow "have to" upgrade to the
    newest version of software is BOGUS.

 

3. Linux 2.6.10-rc1-mm3 Released
5 Nov  - 10 Nov  (81 posts) Archive Link: "2.6.10-rc1-mm3"
Topics: Kernel Release Announcement, User-Mode Linux
People: Andrew Morton

Andrew Morton announced Linux 2.6.10-rc1-mm3, saying:

    ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10-rc1/
    2.6.10-rc1-mm3/

      + Added Andi's 4-level-pagetable patches. It's tested on x86, x86_64,
        ia64 and ppc64. These are fairly intrusive patches and I'll probably
        push them upstream soon.
      + UML updates, ppc64 updates.
      + Should fix a few bugs which people reported in 2.6.10-rc1-mm2.

A bunch of folks posted their various oopses, compilation problems, and various
other bug reports as usual, which were promptly pounced upon by many
developers, and fixes found.

 

4. PC100 Mouse Fix
6 Nov  - 10 Nov  (9 posts) Archive Link: "[no problem] PC110 broke 2.6.9"
Topics: Assembly, Networking
People: Alan Cox, Linus Torvalds, Andries Brouwer

Andries Brouwer noticed that a recent 2.6.9 bug fix had exposed a deeper
problem with the PC110 mouse driver. A test performed by that driver had been
broken up until 2.6.9, and so it had just failed to gain access to a region of
memory or reserve its IRQ. With the test fixed, the mouse got the IRQ and the
RAM, but the Ethernet card got a conflict, so networking wouldn't work. The
mouse in turn, with its new RAM and IRQ powers, tried to do I/O but got errors
and broke down. So the 2.6.9 bug fix ended up breaking both Andries' networking
and mouse operations.

The quick remedy, he said, was to give 'CONFIG_MOUSE_PC110PAD=n' in the kernel
config file, disabling the driver entirely; but he thought a better solution
would be to detect the conflict at driver load time, and refuse to load the
mouse driver if there would be any conflict. He couldn't see a way to detect
the hardware, so he'd asked on the linux-kernel list in hopes that someone else
knew how.

Linus Torvalds suggested perhaps making this driver link into the kernel late
in the game, giving other drivers the chance to claim the resources first and
avoid a serious conflict. But he said he had no idea how to probe for the
hardware himself. He asked Alan Cox if Alan knew of a way to detect it. But
Alan replied, "I have some register info, the driver is done by disassembly of
the PC-DOS driver IBM shipped with the PC110. It's a pre pci, pre dmi machine
so there aren't any obvious sane ways to probe. Its not something you'd want to
build in as opposed to modular on any other system but the PC110." Linus
replied:

    Well, that actually _is_ something we can probe for: "does this machine
    have PCI".

    IOW, we could have a trivial "if the list of PCI devices is non-empty, then
    return immediately" kind of thing, no?

    That would mean that (pretty much) anybody loading that driver by mistake
    wouldn't get into trouble.

This sounded good to Alan, and Linus posted a short patch to do it, with a
comment in the source code, "We try to avoid enabling the hardware if it's not
there, but we don't know how to test. But we do know that the PC110 is not a
PCI system. So if we find any PCI devices in the machine, we don't have a
PC110.". Andries and Alan both confirmed that this solved the problem on their
systems.

 

5. Conflicting License Of drivers/char/rocket.c Resolved
6 Nov  - 10 Nov  (3 posts) Archive Link: "Licencing of drivers/char/rocket.c ?"
People: Theodore Ts'o, Adrian Bunk

Adrian Bunk noticed that the drivers/char/rocket.c file listed two conflicting
licenses. The first, at the top of the file, was the GPL. The second one read:

    The following source code is subject to Comtrol Corporation's Developer's
    License Agreement.

    This source code is protected by United States copyright law and
    international copyright treaties.

    This source code may only be used to develop software products that will
    operate with Comtrol brand hardware.

    You may not reproduce nor distribute this source code in its original form
    but must produce a derivative work which includes portions of this source
    code only.

    The portions of this source code which you use in your derivative work must
    bear Comtrol's copyright notice:

    Copyright 1994 Comtrol Corporation.

Adrian felt that the third paragraph of this license conflicted with the GPL (
http://www.gnu.org/copyleft/gpl.html) , since it required that the code only be
used to develop software for a particular brand of hardware. Adrian asked
Theodore Ts'o to clarify the license, and Theodore replied:

    I developed the Rocketport device driver under contract of Comtrol, with
    the understanding that the resulting device driver would be released under
    the GPL. So I believe the correct way of resolving the conflicting
    copyright statements is to delete the following lines.

    It would be good to get positive confirmation from Comtrol as well that
    this is their understanding as well. Otherwise, we will need to remove the
    Rocketport driver from the mainline Linux kernel.

He got this confirmation from Jason Jorgensen of Comtrol, and posted a patch
removing Comtrol's copyright notice from the code.

 

6. Linux 2.4.28-rc2 Released
7 Nov  (7 posts) Archive Link: "Linux 2.4.28-rc2"
Topics: FS: smbfs, Power Management: ACPI, Security
People: Marcelo Tosatti

Marcelo Tosatti announced Linux 2.4.28-rc2, saying:

    It contains a network update (which is composed of several smaller changes
    - IPVS, SCTP, Netfilter), a collection of ACPI bugfixes, a SMBFS client
    buffer overflow fix (which is very hard to exploit - the attacker needs to
    control packets from the server), amongst others.

    This is going to be become 2.4.28 if nothing bad shows up.

 

7. Bitkeeper Diff Enhancement
8 Nov  - 10 Nov  (9 posts) Archive Link: "bk-commits: diff -p?"
Topics: Version Control
People: Geert Uytterhoeven, Larry McVoy, Jens Axboe

Geert Uytterhoeven requested a BitKeeper feature, asking, "Would it be possible
to enable the `-p' option (Show which C function each change is in) of diff for
all patches sent to the bk-commits-* mailing lists?" Larry McVoy replied:

    This has been fixed in the following releases:

    bk-3.2.3
    bk-3.2.2c
    bk-3.2.2b

    Correct usage is "bk diffs -up" which will get you unified + procedural
    diffs. -p is currently a hack, it implies -u, but don't depend on that
    behaviour, a future release does this correctly and if you teach your
    fingers that diffs -p is the same as diffs -up you'll get burned later.

Jens Axboe said, "Thanks! I requested this about a year ago :-)"

 

8. Real-Time Security Module
9 Nov  (1 post) Archive Link: "[PATCH] Realtime LSM"
Topics: Real-Time
People: Jack O'Quin, Chris Wright

Jack O'Quin said:

    The realtime-lsm Linux Security Module, written by Torben Hohn and Jack
    O'Quin with significant help from Chris Wright and Jody McIntyre,
    selectively grants realtime capabilities to specific user groups or
    applications. One typical use is low latency audio, and the patch has been
    extensively field tested by Linux audio users.

    We developed this LSM in response to a serious need. Audio developers have
    been struggling for years with having to apply specialized kernel patches
    to get reliable realtime operation. Audio is very intolerant of scheduling
    glitches. They cause nasty pops in the output. Also, large audio
    applications should not run as `root'. The 2.4 "capabilities patch" was
    never a satisfactory solution for this problem, but it was the best we
    could do at the time.

    Now, thanks to the good work being done on 2.6, we are now close to being
    able to do serious realtime work with standard kernels available
    everywhere. The LSM framework is an important element of that solution with
    the realtime LSM a small but essential component, because it makes these
    features available without excessive administrative burden. Many musicians
    have a Mac or Windows background, systems which grant realtime privileges
    to all tasks indiscriminantly. The realtime LSM allows us to grant similar
    privileges while maintaining better control over who gets them.

    This version was originally applied against linux-2.6.10-rc1-mm2, and
    retested with linux-2.6.10-rc1-mm4.

 

9. Linux PPC Mailing Lists Move To Ozlabs
10 Nov  (1 post) Archive Link: "[PATCH] Update ppc list addresses in
MAINTAINERS"
Topics: MAINTAINERS File
People: Paul Mackerras

Paul Mackerras announced, "The linuxppc mailing lists that were at
lists.linuxppc.org have moved to ozlabs.org. This patch updates the MAINTAINERS
file to reflect that."

 

 

 

 

 

 

                       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.