Kernel Traffic #294 by Zack Brown

[email protected] Wed, 02 Feb 2005 22:13:58 -0800
Newsgroups gmane.linux.kernel.kernel-traffic
Message-ID <[email protected]>
                        Kernel Traffic #294 For 2 Feb 

                                 By Zack Brown

Table Of Contents

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

    1.  30 Dec 2004 - 6 Jan  (2 posts) SATA Support For Intel ICH7 Under 2.4
                                       And 2.6
    2.  2 Jan  - 11 Jan      (222      Some Debate On The Development Model
                             posts)
    3.  4 Jan  - 6 Jan       (5 posts) DVB bt8xx Attempted Fixes
    4.  6 Jan  - 10 Jan      (12       In-Kernel Genetic Algorithm Library
                             posts)
    5.  7 Jan                (1 post)  Linux 2.4.29-rc1 Released
    6.  7 Jan  - 9 Jan       (7 posts) Status Of The "Halloween Document" And
                                       Freinds
    7.  9 Jan  - 11 Jan      (13       Status Of bcopy
                             posts)
    8.  10 Jan               (1 post)  IA64 Maintainership
    9.  11 Jan               (1 post)  Linux 2.2.27-rc1 Released
    10. 12 Jan               (5 posts) DebugFS Gains Ground

Mailing List Stats For This Week

We looked at 2201 posts in 12885K.

There were 514 different contributors. 269 posted more than once. 172 posted
last week too.

The top posters of the week were:

  * 201 posts in 1788K by Greg KH
  * 67 posts in 295K by Alan Cox
  * 65 posts in 422K by Adrian Bunk
  * 39 posts in 514K by Christoph Lameter
  * 37 posts in 186K by Linus Torvalds
  * Full Stats

 

1. SATA Support For Intel ICH7 Under 2.4 And 2.6
30 Dec 2004 - 6 Jan  (2 posts) Archive Link: "[PATCH] SATA support for Intel
ICH7 - 2.6.10 - repost"
Topics: Serial ATA
People: Jason Gaston, Jeff Garzik

Jason Gaston said, "This patch adds the Intel ICH7 DID's to the ata_piix.c SATA
driver, ahci.c SATA AHCI driver and quirks.c for ICH7 SATA support. If
acceptable, please apply." Jeff Garzik applied this to his trees, for ultimate
inclusion in 2.4 and 2.6.

 

2. Some Debate On The Development Model
2 Jan  - 11 Jan  (222 posts) Archive Link: "starting with 2.7"
Topics: Backward Compatibility, Big Memory Support, Bug Tracking, FS: NFS, FS:
devfs, Feature Freeze, Microsoft, Ottawa Linux Symposium, Power Management:
ACPI, Sound: OSS, Version Control
People: William Lee Irwin III, Andries Brouwer, Adrian Bunk, Dr. David Alan
Gilbert, L. A. Walsh, Bill Davidsen, Dave Jones, Willy Tarreau, Diego Calleja, 
Roman Zippel, Theodore Ts'o, Marcelo Tosatti, Russell King, Randy Dunlap, Alan
Cox, Len Brown, Rik van Riel, Maciej Soltysiak, Andrew Morton

Maciej Soltysiak asked when the 2.6 tree would fork into 2.7, so folks could
start submitting "experimental code"; and a huge discussion ensued. William Lee
Irwin III replied:

    I have a plan to never ever stop experimental code, which is to actually
    move on the 2.6.x.y strategy if no one else does and these kinds of
    complaints remain persistent and become more widespread.

    There is a standard. Breaking things and hoping someone cleans up later
    doesn't work. So it has to be stable all the time anyway, and this is one
    of the observations upon which the "2.6 forever" theme is based. Frozen
    "minimal fix trees" for the benefit of those terrified of new working code
    (or alternatively, the astoundingly risk-averse) are a relatively
    straightforward theme, which kernel maintainers should be fully able to
    faithfully develop.

Maciej said he liked the 2.6.x.y idea, but he clarified that his question
really pertained to whether there was a stock-pile of really invasive changes
building up; and if so when would the 2.7 branch kick-off with these changes.

Andries Brouwer came back to William's initial reply, saying:

    You are an optimist. I think reality is different.

    You change some stuff. The bad mistakes are discovered very soon. Some
    subtler things or some things that occur only in special configurations or
    under special conditions or just with very low probability may not be
    noticed until much later.

    So, your changes have a wake behind them that is wide the first few days
    and becomes thinner and thinner over time. Nontrivial changes may have bugs
    discovered after two or three years.

    If a kernel is set apart and called "stable", then it is not, but it will
    become more and more stable over time, until after two or three years only
    very few unknown problems are encountered.

    If you come with a new kernel every month, then you get the stability that
    the "stable" kernel has after less than a month, which is not particularly
    stable.

Rik van Riel agreed with this, pointing out that some bugs, such as those
involving databases with large data-sets, could take years to fully manifest
themselves.

But William said to Andries, "This is not optimism. This is experience. Every
``stable'' kernel I've seen is a pile of incredibly stale code where vi'ing any
file in it instantly reveals numerous months or years old bugs fixed upstream.
What is gained in terms of reducing the risk of regressions is more than lost
by the loss of critical examination and by a long longshot." Adrian Bunk
replied:

    The main advantage with stable kernels in the good old days (tm) when 4 and
    6 were even numbers was that you knew if something didn't work, and
    upgrading to a new kernel inside this stable kernel series had a relatively
    low risk of new breakages. This meant one big migration every few years and
    relatively easy upgrades between stable series kernels.

    Nowadays in 2.6, every new 2.6 kernel has several regressions compared to
    the previous one, and additionally obsolete but used code like ipchains and
    devfs is scheduled for removal making upgrades even harder for many users.

    There's the point that most users should use distribution kernels, but
    consider e.g. that there are poor souls with new hardware not supported by
    the 3 years old 2.4.18 kernel in the stable part of your Debian
    distribution.

Dr. David Alan Gilbert replied:

    I have always found the stable series useful for two reasons:

     1. It encourages me to test the kernel; if I have a kernel that is
        generally thought to be stable then I will try it on my home machine
        and report problems - this lets the kernel get tested on a wide range
        of hardware and situations; if there is no kernel that is liable to be
        stable changes will get much less testing on a smaller range of
        hardware.
     2. If I have a bug in a vendor kernel everyone just tells me to go and
        speak to the vendor - so at least having a stable base to go back to
        can let me report a bug that isn't due to any vendors patches.
     3. In some cases the commercial vendors don't seem to release source to
        some of the kernels except to people who have bought the packages, so
        those vendor kernel fixes aren't 'publically' visible.

    I think (1) is very important - getting large numbers of people to test OSS
    is its greatest asset.

L. A. Walsh said:

    I don't know about #3 below, but #1 and #2 are certainly true. I always
    preferred to run a vanilla stable kernel as I did not trust the vendors'
    kernels because their patches were not as well eyed as the vanilla kernel.
    I prefer to compile a kernel for my specific machines, some of which are
    old and do better with a hand-configured kernel rather than a Microsoftian
    monolith that is compiled with all possible options as modules.

    I have one old laptop that sound just doesn't work on no matter what the
    settings -- may be failed hardware, but darned if I can't seem to easily
    stop the loading of sound related modules as hardware is probed by
    automatic hardware probing on each bootup, and the loading of sound modules
    by GUI dependencies on a memory constrained system.

    With each new kernel release, I wonder if it will be satisfactory to use
    for a new, base-line, stable vanilla kernel, but post release comments seem
    to prove otherwise.

    It seems that some developers have the opinion that the end-user base no
    longer is their problem or audience and that the distros will patch all the
    little boo-boo's in each unstable 2.6 release. Well, that's just plain
    asking for problems. Just in SuSE's previous release of 9.1, it wouldn't
    boot up, for update, on any system that used xfs disks. Redhat has
    officially dropped support for end-user distros, that leaves...who looking
    after end users? Debian, Mandrake?

    From what I've read here, stable Debian, it seems, is in the 2.4 series. I
    don't know what Mandrake is up to, but I don't want to have to be jumping
    distros because my distro maker has screwed up the kernel with one of their
    patches. I also wouldn't want to give up reporting kernel bugs directly to
    developers as I would if I am using a non-vanilla, or worse, some tainted
    module.

    However, all that being said, there would still be the choosing of someone,
    steady and capable, of holding on to the stable release and being it's
    gate-keeper. It seems like it would become quite a chore to decide what
    code is let into the stable version. It's also considered by many to be
    "less" fun, not only to "manage the stable distro", but backport code into
    the previous distro. Maybe no one _qualified_, wanted to manage a stable
    release. It takes time and possibly enough time to qualify as a full-time
    job. It takes a special person to find gainful employment as a
    vendor-neutral kernel maintainer. The alternative is to try to work 2 jobs
    where, in programming, each job might "like" to have 60-80 hours of
    attention per week. That's a demanding sacrifice as well.

    It may be the case that no one at the last closed door kernel developer
    meeting wanted to undertake the care of a stable kernel. No volunteers...no
    kernel. There is less "wiggle room" in the average, mature, developer's
    schedule with the advent of easy outsourcing to cheaper labor that doesn't
    come from societies that breed independence and nurture talented, more
    mature, or eccentric developers that love spending spare cycles working on
    Open Source code.

    Nevertheless, it would be nice to see a no-new-features, stable series spun
    off from these development kernels, maybe .4th number releases, like 2.6.10
    also becomes a 2.6.10.0 that starts a 2.6.10.1, then 2.6.10.2, etc...with
    iteritive bug fixes to the same kernel and no new features in such a
    branch, it might become stable enough for users to have confidence
    installing them on their desktop or stable machines.

    It wouldn't have to be months upon months of diverging code, as jumps to a
    new stable base can be started upon any fairly stable development kernel,
    say 2.6.10 w/e100 fixed, tracing fixed, the slab bug fix, and the
    capabilities bugs fixed going into a 2.6.10.1 that has no new features or
    old features removed. Serious bug fixes after that could go into a
    2.6.10.2, etc. Such point releases would be easier to manage and only be
    updated/maintained as long as someone was interested enough to do it.

    The same process would be applied to a future dev-kernel that appears to be
    mostly stable after some number of weeks of alpha testing. It may be the
    case that a given furture dev-kernel has no stable branch off of it because
    it either a) didn't need one, or b) was too far from stable to start one.

    Anyway, just a thought for having something of the old with out as much of
    a headache of kernels that diverge for a year or more before getting
    sync'ed up.

Among other comments, Bill Davidsen remarked on Linda's idea about forking off
a new stable series from any reasonably stable development kernel. Bill said
that Andrew Morton was the only one who could accurately guage how good vendor
fixes were, "but I suspect that the kernel is moving too fast and vendors "pick
one" and stabilize that, by which time the kernel.org is generations down the
road. It's possible that some fixes are then rediffed against the current
kernel and fed, but I have zero information on that happening or not." William
replied:

    It does happen. I can't give a good estimate of how often. Someone at a
    distro may be able to help here, though it's unclear what this specific
    point is useful for.

    What is a useful observation is that the 2.6-style development model is not
    in use in these instances, which instead use the older "frozen" model. This
    means that using frozen models in mainline is redundant. The function and
    service are available elsewhere and numerous simultaneously frozen trees
    guarantees no forward progress during such syzygys.

Dave Jones replied:

    When we shipped Fedora Core 3, we drew a line in the sand, and decided that
    2.6.9 was the kernel we were going to ship with. It happened to coincide
    nicely with the final release date, and everyone was happy.

    Post release, the myriad of users filled RH bugzilla diligently with their
    many reports of interesting failures. Upstream had now started charging
    ahead with what was to be 2.6.10.

    The delta between 2.6.9 -> 2.6.10 was around 4000 changesets. Cherry
    picking csets to backport to 2.6.9 at this rate of change is nigh on
    impossible. You /will/ miss stuff. In the absense of a 2.6.9.1, we chose to
    use Alan's -ac patches as a base to pick up most of the interesting meat,
    and then cherry pick anything else which people had noticed go past, or in
    some cases, after investigation into a bugreport.

    So now we're at our 2.6.9-ac+a few dozen 2.6.10 csets and all is happy with
    the world. Except for the regressions. As an example, folks upgrading from
    Fedora core 2, with its 2.6.8 kernel found that ACPI no longer switched off
    their machines for example. Much investigation went into trying to pin this
    down. Kudos to Len Brown and team for spending many an hour staring into
    bug reports on this issue, but ultimately the cause was never found. It was
    noted by several of our users seeing this problem that 2.6.10 no longer
    exhibits this flaw. Yet our 2.6.9-ac+backports+every-2.6.10-acpi-cset also
    was broken. It's likely Fedora will get a 2.6.10 based update before the
    fault is ever really found for a 2.6.9 backport.

    This is just one example of a regression that crept in unnoticed, and got
    fixed almost by accident. (If it was intentionally fixed, we'd know which
    patches we needed to backport 8-)

    For distro kernels to be the 'stable' branch, we *rely* on help from
    various subsystem maintainers to continue to bugfix old kernels, despite it
    being unsexy. I admit it's painful, and given the option, replying "just
    use 2.6.10-bk6" is a much easier alternative, but with thousands of changes
    going into tree each month, it's not feasable for a distro to ship updates
    on that basis without something happening to deal with regressions.

    As for stuff going back upstream.. You may be surprised how many bugs our
    2.6.9-ac-many-backports hybrid has turned up which turned out to be just as
    relevant on 2.6.10 Here's the patchcount in our current trees..

    Fedora Core 2: 245
    Fedora Core 3: 63
    Rawhide: 76

    FC2 is our 2.6.9 hybrid (the fc3 kernel got backport to fc2 as an update),
    FC3 is a rebase to 2.6.10-ac2. rawhide (FC4-to-be) is 2.6.10-bk6.

    Note we still have 63 patches in FC3. Out of those, just over a dozen are
    'features' that we added. The majority of the rest are real bugfixes,
    currently languishing in out-of-tree repositories for projects like NFS,
    s390, e1000 updates etc.. Note also that when FC3 first shipped, before we
    started backporting 2.6.10 bits, the patchcount was around 40 or so, so in
    the 2.6.9->2.6.10 rebase, we 'grew' around 13 patches. Each time I rebase
    to a new upstream, I want to get back to (or better than) the original
    patchcount where possible. When this doesn't happen, it means we're
    accumulating stuff that isn't making its way upstream fast enough.

    So, of those 182 patches we dropped in our 2.6.10 rebase.. Some of them
    were upstream backports, but some of them were patches we pushed upstream
    that we now get to drop on a rebase. So the push/pull ecosystem is working
    out pretty well in this regard Whilst I'd like to get even more of this
    stuff upstream, it's the job of those out-of-tree pool maintainers to push
    their work, not mine.

That subthread skewed off into a discussion of binary modules, but elsewhere,
Bill replied to Adrian's remark about the difficulty of upgrading in the face
of things like ipchangs and DevFS being slated for removal from the main kernel
tree. Bill said, "And there you have my largest complaint with the new model.
If 2.6 is stable, it should not have existing features removed just because
someone has a new wet dream about a better but incompatible way to do things. I
expect working programs to be deliberately broken in a development tree, but
once existing features are removed there simply is no stable set of features." 
William replied, "The presumption is that these changes are frivolous. This is
false. The removals of these features are motivated by their unsoundness, and
those removals resolve real problems. If they did not do so, they would not
pass peer review." But a few posts down the line, Willy Tarreau objected:

    There was a feature freeze by which everything which was considered hard to
    maintain or not very stable should have been removed. When 2.6 was
    announced, it was with a set of features. Who know, perhaps there are a few
    people who could replace a kernel 2.0 by a 2.6 on some firewalls. Even if
    they are only 2 or 3 people, there is no reason that suddenly a feature
    should be removed in the stable series. But it should be removed in 2.7 if
    it's a nightmare to maintain.

    If the motivation to break backwards compatibility is not enough anymore to
    justify development kernels, I don't know what will justify it anymore. I'm
    particularly fed up by some developer's attitude who seem to never go
    outside and see how their creations are used by people who really trust the
    "stable" term... until they realize that this word is used only for
    marketting, eg. help distro makers announce their new major release at the
    right moment. ipfwadm had about 2 years to be removed before 2.6, wasn't
    that enough ? Once the stable release is out, the developer's point of view
    about how is creation *might* be used is not a justification to remove it.
    But of course, his difficulties at maintaining the code is fairly enough
    for him to say "well, it was a mistake to enable this, I don't want it in
    the future version anymore".

    Why do you think that so many people are still using 2.4 (and even older
    versions) ? This is because they are the only ones who don't constantly
    change under your feet and from which you can build something reliable and
    guaranteed maintainable. At least, I've not seen any commercial product
    based on 2.6 yet !

    Please, stop constantly changing the contents of the "stable" kernel.

Diego Calleja said:

    2.6 will stop having small issues in each release until 2.7 is forked just
    like 2.4 broke things until 2.5 was forked. The difference IMO is that
    linux development now avoids things like the unstability which the 2.4.10
    changes caused and things like the fs corruption bugs we saw in 2.4

    I fully agree with WLI that the 2.4 development model and the
    backporting-mania created more problems than it solved, because in the real
    world almost everybody uses what distros ship, and what distros ship isn't
    kernel.org but heavily modified kernels, which means that the kernel.org
    was not really "well-tested" or it took much longer to become "well-tested"
    because it wasn't really being used.

Roman Zippel replied, "Backporting isn't the primary problem. The real problem
were the huge time intervals between stable releases. A new stable release
brings a huge amount of changes which got different levels of testing, which
makes upgrading quite an experience. What we need are regular releases of
stable kernels with a manageable amount of changes and a development tree to
pull these changes from. It's a bit comparable to Debian testing/unstable.
Changes go only from one tree to the other if they fulfil certain criteria. The
job of the stable tree maintainer wouldn't be anymore to apply random patches
sent to him, but to select instead which patches to pull from the development
tree. This doesn't of course guarantees perfectly stable kernels, but it would
encourage more people to run recent stable kernels and avoids the huge steps in
kernel upgrades. The only problem is that I don't know of any source code
management system which supports this kind of development reasonably easy..." 
Adrian also said to Diego, "The 2.6.9 -> 2.6.10 patch is 28 MB, and while the
changes that went into 2.4 were limited since the most invasive patches were
postponed for 2.5, now _all_ patches go into 2.6 . Yes, -mm gives a bit more
testing coverage, but it doesn't seem to be enough for this vast amount of
changes." A little later, he added, "My opinion is to fork 2.7 pretty soon and
to allow into 2.6 only the amount of changes that were allowed into 2.4 after
2.5 forked. Looking at 2.4, this seems to be a promising model."

Theodore Ts'o broke in at this point, to say:

    You have *got* to be kidding. In my book at least, 2.4 ranks as one of the
    less successful stable kernel series, especially as compared against 2.2
    and 2.0. 2.4 was far less stable, and a vast number of patches that
    distributions were forced to apply in an (only partially successful)
    attempt to make 2.4 stable meant that there are some 2.4-based
    distributions where you can't even run with a stock 2.4 kernel from
    kernel.org. Much of the reputation that Linux had of a rock-solid OS that
    never crashed or locked up that we had gained during the 2.2 days was
    tarnished by 2.4 lockups, especially in high memory pressure situations.

    One of the things which many people have pointed out was that even 2.6.0
    was more stable than 2.4 was for systems under high load.

Marcelo Tosatti said, "99% of the features distributions have applied to their
2.4 based kernels are "enterprise" features such as direct IO, AIO, etc. Really
I can't recall any "attempt to make 2.4 stable" from the distros, its mostly
"attempt to backport nice v2.6 feature"." Theodore replied, "Sorry, those were
two separate points; I should have been more careful to keep the two separate.
I believe 2.4 has been less successful than other stable series for two
reasons. The first is the very large divergence of what the distributions (and
therefore most users) were actually using from each other and from kernel.org.
The second is the lack of stability, in particular with systems with HIGHMEM
configured, where low memory exhuastion is the first thing I suspect when a
customer tells me that a 2.4-based system with a lot of memory freezes up." And
William also added, "I am unfortunately holding 2.4.x' earlier history against
it. While you were maintaining it, much of what we're discussing was resolved.
Unfortunately, the stabilization you're talking about was essentially too late;
distros had long-since wildly diverged, they had frozen on older releases, and
the damage to Linux' reputation was already done. I'm also unaware of major
commercial distros (e.g. Red Hat, SuSE) using 2.4.x more recent than 2.4.21 as
a baseline, and it's also notable that one of the largest segments of the
commercial userbase I see is using a distro kernel based on 2.4.9." Marcelo
agreed wholeheartedly with this.

Elsewhere in the subthread, Theodore remarked, "The real key, as always, is
getting users to download and test a release. So another approach might be to
shorten the time between 2.6.x and 2.6.x+1 releases, so as to recreate more
testing points, without training people to wait for -bk1, -bk2, -rc1, etc.
before trying out the kernel code. This is the model that we used with the
2.3.x series, where the time between releases was often quite short. That
worked fairly well, but we stopped doing it when the introduction of BitKeeper
eliminated the developer synch-up problem. But perhaps we've gone too far
between 2.6.x releases, and should shorten the time in order to force more
testing." Russell King replied, "It is also the model we used until OLS this
year - there was a 2.6 release about once a month prior to OLS. Post OLS, it's
now once every three months or there abouts, which, IMO is far too long. I
really liked the way pre-OLS 2.6 was working... it means I don't have to
twiddle my fingers getting completely bored waiting for the next 2.6 release to
happen. Can we return to that methodology please?" William seconded this, as
did Randy Dunlap, who added, "We (whoever "we" are) have erred too much on
longer cycles for stability, but it's not working out as hoped IMO." And Alan
Cox said, "After 2.6.9-ac its clear that the long 2.6.9 process worked very
badly. While 2.6.10 is looking much better its long period meant the allegedly
"official" base kernel was a complete pile of insecure donkey turd for months.
That doesn't hurt most vendor users but it does hurt those trying to do stuff
on the base kernels very badly."

 

3. DVB bt8xx Attempted Fixes
4 Jan  - 6 Jan  (5 posts) Archive Link: "PATCH: DVB bt8xx in 2.6.10"
Topics: Digital Video Broadcasting
People: Arne Ahrend, Johannes Stezenbach, Johannes

Arne Ahrend said, "This patch allows the user to select only actually desired
frontend driver(s) for bt8xx based DVB cards by removing calls to
frontend-specific XXX_attach() functions and returning NULL instead for
unconfigured frontends. To keep this patch small, no attempt is made to #ifdef
away other static functions or data for unselected frontends. This leads to
compiler warnings about defined, but unused code, unless all four frontends
relevant to bt8xx based cards are selected. I have tested this on the Avermedia
771 (the only DVB card I have access to)." Johannes Stezenbach replied, "This
approach has been discussed on the linux-dvb list and was rejected because of
the huge #ifdef mess it creates (you just touched bt8xx, it's even worse for
saa7146 based cards). The frontend drivers are tiny so I think you can afford
to load some that aren't actually used by your hardware." Arne accepted this,
but offered some cosmetic changes to the code in any case; which Johannes
accepted.

 

4. In-Kernel Genetic Algorithm Library
6 Jan  - 10 Jan  (12 posts) Archive Link: "[ANNOUNCE 0/4][RFC] Genetic
Algorithm Library"
People: Jake Moilanen, James Bruce, Pedro Larroy, William Lee Irwin III

Jake Moilanen said:

    I'm pleased to announce a new in-kernel library to do kernel tuning using a
    genetic algorithm.

    This library provides hooks for kernel components to take advantage of a
    genetic algorithm. There are patches to hook the different schedulers
    included.

    The basic flow of the genetic algorithm is as follows:

     1. Start w/ a broad list of initial tunable values (each set of tunables
        is called a child)
     2. Let each child run for a timeslice.
     3. Once the timeslice is up, calculate the fitness of the child (how well
        performed).
     4. Run the next child in the list.
     5. Once all the children have run, compare the fitnesses of each child and
        throw away the bottom-half performers.
     6. Create new children to take the place of the bottom-half performers
        using the tunables from the top-half performers.
     7. Mutate a set number of children to keep variance.
     8. Goto step 2.

    Over time the tunables should converge toward the optimal settings for that
    workload. If the workload changes, the tunables should converge to the new
    optimal settings (this is part of the reason for mutation). This algorithm
    is used extensively in AI.

    Using these patches, there are small gains (1-3%) in Unixbench & SpecJBB. I
    am hoping a scheduler guru will able to rework them to give higher gains.

    The main area that could use reworking is the fitness calculation. The
    problem is that the kernel is looking more at the micro of what's going on,
    instead of the macro. I am thinking of moving the fitness calculation to
    outside the kernel.

    However, I would advocate keeping the number of layers needed to
    communicate between the genetic library and the hooked component down in
    order to keep it as lightweight as possible.

    The patches are based on 2.6.9 and still a little rough, but here is the
    descriptions:

    [1/4 genetic-lib]: This is the base patch for the genetic algorithm. It's
    based against 2.6.9.

    [2/4 genetic-io-sched]: The base patch for the IO schedulers to use the
    genetic library.

    [3/4 genetic-as-sched]: A genetic-lib hooked anticipatory IO scheduler.

    [4/4 genetic-zaphod-cpu-sched]: A hooked zaphod CPU scheduler. Depends on
    the zaphod-v6 patch.

One would expect something like an in-kernel genetic algorithm library to
receive about the same welcome as an in-kernel Perl interpreter, but actually
folks were fairly polite about it. James Bruce asked if Jake included a
cross-over algorithm; but after perusing the code he saw that Jake did indeed
implement cross-over. He asked, "What is the motivation for generating two
children at once, instead of just one? Genes values shouldn't get "lost" since
the parents are being kept around anyway. Also, since the parameters in general
will not have a meaningful ordering, it might make sense for the generic
crossover to be the "each gene randomly picked from one of the two parents"
approach. In practice I've found that to mix things up a bit better in the
parameter optimization problems I've done with GAs." Jake replied:

    The intitial motivation for creating two children at once was so each
    parent could pass on all of their genes. The 75% of the parent's genes
    might be in child A, but the other 25% would be in child B.

    Thinking about it more, there should be no reason that all of a parent's
    genes have to be passed on in a child. It would not be too difficult to
    have each gene come randomly from one of the two parents. I'll add that in
    on the next rev of the patches.

Pedro Larroy also commented on Jake's patches, saying:

    your algorithm tends to converge to a global optimum, but also as William
    Lee Irwin III has commentend on irc, it might miss "special points" since
    there's no warranty of the function to minize to be continuous.

    I think it's a good idea to introduce this techniques to tune the kernel,
    but perhaps userland would be the right place for them, to be able to
    switch them off when in need or have more controll over them. But it's a
    nice initiative in my opinion.

Jake replied, regarding a user-space implementation. He said, "I considered
doing this in userland at first, but I went away from it for a couple reasons.
I wanted users of the library to have a lot of flexibility. There was also a
concern with the extra overhead going inbetween user/kernel space (important
for users who's children have very short life-spans)." And regarding William
Lee Irwin III's idea about missing "special points", Jake said, "This is a very
good point, and is something that I'm working on now. I would like to be able
to able to have multiple fitness rankings (ex. one that ranks specifically for
throughput and one specifically for interactivity/latency). Then tune specific
genes, that actually impact that specific fitness check."

 

5. Linux 2.4.29-rc1 Released
7 Jan  (1 post) Archive Link: "Linux 2.4.29-rc1"
Topics: Serial ATA
People: Marcelo Tosatti

Marcelo Tosatti announced Linux 2.4.29-rc1, saying:

    Here goes the first release canditate of v2.4.29.

    This time it contains a SATA update, bunch of network drivers updates,
    amongst others.

    More importantly it fixes a sys_uselib() vulnerability discovered by Paul
    Starzetz:

    CAN-2004-1235
    http://isec.pl/vulnerabilities/isec-0021-uselib.txt

    Upgrade is recommended for users of v2.4.x mainline, distros should be
    releasing their updates real soon now.

 

6. Status Of The "Halloween Document" And Freinds
7 Jan  - 9 Jan  (7 posts) Archive Link: "2.6.x features log"
Topics: Big O Notation, FS: devfs, Hot-Plugging, Power Management: ACPI, SMP, 
Scheduler, Version Control
People: Randy Dunlap, Jerome Lacoste, Rahul Karnik, Diego Calleja, Dave Jones, 
Christoph Hellwig

Randy Dunlap said:

    I think that people really like the Dave Jones 2.5/2.6 halloween
    information/update. It contained a lot of useful info in one place, with
    pointers to more details.

    What I'm seeing (and getting a little concerned about, although I dislike
    PR with a passion) is that the 2.6.x continuous development cycle will
    cause us (the Linux community) to miss logging some of these important new
    features (outside of bk). Has anyone kept a track of new features that are
    being added in 2.6?

    I'll keep a list (or someone else can -- DaveJ ?) if anyone is interested
    in feeding items into it. Or do distros already keep such a running list of
    new features?

    For example (and some of these might not be needed here):

      + NUMA support and API, including some CPU affinity updates
      + hotplug and udev
      + security fixes
      + better ACPI support, better interrupt routing, MSI support
      + faster pipes

Jerome Lacoste replied, "I loved going through the kernel newbies status: http:
//www.kernelnewbies.org/status/. Unfortunately it's not updated anymore."

Rahul Karnik also remarked, "Personally speaking, the key feature of the
Halloween document was not documenting what new features we had in the kernel
-- it was the ability to see what _user-visible_ changes there were. As a
"mainstream" user, I might not care much about a new O(1) scheduler, but I
might be affected by the removal of (say) ipchains."

Diego Calleja also said, "lwn.net (http://lwn.net) has always had a excellent
kernel development coverage" .

Elsewhere, Dave Jones said, "I don't really have the time right now to maintain
it, but if you want to take anything from the doc I wrote, or push it for
inclusion in the tree so others can modify it at will, feel free." Close by,
Christoph Hellwig said, "Debian actually patches Dave's post_halloween document
into Documentation. Maybe we should put it there for mainline aswell and make
sure to update it when doing major changes?" Dave replied, "I've said "Sure, go
for it" to a number of people who brought this up, but nothing has ever come of
it. I'll send it to Linus myself later today. 8)"

 

7. Status Of bcopy
9 Jan  - 11 Jan  (13 posts) Archive Link: "removing bcopy... because it's half
broken"
Topics: BSD
People: Arjan van de Ven, Linus Torvalds, Richard Henderson

Arjan van de Ven said:

    Nothing in the kernel is using bcopy right know, and that is a good thing.
    Why? Because a lot of the architectures implement a broken bcopy().... the
    userspace standard bcopy() is basically a memmove() with a weird parameter
    order, however a bunch of architectures implement a memcpy() not a memmove
    ().

    Instead of fixing this inconsistency, I decided to remove it entirely,
    explicit memcpy() and memmove() are prefered anyway (welcome to the 1990's)
    and nothing in the kernel is using these functions, so this saves code size
    as well for everyone.

Linus Torvalds replied:

    The problem is that at least some gcc versions would historically generate
    calls to "bcopy" on alpha for structure assignments. Maybe it doesn't any
    more, and no such old gcc versions exist any more, but who knows?

    That's also why "bcopy" just acts like a memcpy() in many cases: it's
    simply not worth it to do the complex case, because the only valid use was
    a compiler that would never validly do overlapping ranges anyway.

    Gcc _used_ to have a target-specific "do I use bcopy or memcpy" setting,
    and I just don't know if that is still true. I also don't know if it
    affected any other platforms than alpha (I would assume that it matched
    "target has BSD heritage", and that would likely mean HP-UX too)

    Richard? You know both gcc and alpha, what's the word?

Richard Henderson replied:

    Yes, TARGET_MEM_FUNCTIONS. It's never not set for Linux targets. Or for OSF
    /1 for that matter... Indeed, it would take me some time to figure out
    which targets it's *not* set for.

    (Yet another thing that ought to get cleaned up -- either invert the
    default value or simply require the target to either provide the libc entry
    point or add a version to libgcc.)

    I'm not sure how far back you'd have to go to find an Alpha compiler that
    needs this. Prolly back to at least gcc 2.6, but I don't have sources that
    old handy to check.

 

8. IA64 Maintainership
10 Jan  (1 post) Archive Link: "[PATCH] New ia64 maintainer"
People: Tony Luck, David Mosberger

Tony Luck said that David Mosberger-Tang had "handed over the keys a few months
ago. Time to make sure everyone knows to send stuff to me." He posted a patch
to list himself as the official maintainer of the IA64 platform instead of
David.

 

9. Linux 2.2.27-rc1 Released
11 Jan  (1 post) Archive Link: "Linux 2.2.27-rc1"
People: Marc-Christian Petersen

Marc-Christian Petersen announced Linux 2.2.27-rc1, saying, "here goes
2.2.27-rc1. Please let me know if I missed something security related. It's
hard to keep up2date with latest tons of security vulns ;)"

 

10. DebugFS Gains Ground
12 Jan  (5 posts) Archive Link: "debugfs directory structure"
People: Roland Dreier, Greg KH

Roland Dreier said, "Now that debugfs is merged into Linus's tree, I'm looking
at using it to replace the IPoIB debugging pseudo-filesystem (ipoib_debugfs).
Is there any guidance on what the structure of debugfs should look like? Right
now I'm planning on putting all the debug info files under an ipoib/ top level
directory. Does that sound reasonable?" Greg KH was thrilled that Roland was
going to use it; he said, "Anarchy rules in debugfs. Do what you want. If you
stomp over someone else's stuff, I expect complaints and maybe someone will
have to arbitrate, but odds are that will ever happen is pretty slim. So yes,
ipoib/ in the top level sounds just fine."

 

 

 

 

 

 

                       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.