mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Andrea Arcangeli <andrea@suse.de>
To: 4Front Technologies <dev@opensound.com>
Cc: David Lang <david.lang@digitalinsight.com>,
	Valdis.Kletnieks@vt.edu, linux-kernel@vger.kernel.org
Subject: Re: Stop the Linux kernel madness
Date: Tue, 22 Jun 2004 04:06:15 +0200	[thread overview]
Message-ID: <20040622020615.GE14478@dualathlon.random> (raw)
In-Reply-To: <40D636EA.7090704@opensound.com>

On Sun, Jun 20, 2004 at 06:16:26PM -0700, 4Front Technologies wrote:
> You and others can keep suggesting that put the world+kitchen sink into the 
> kernel and have the problems go away but it's not realistic. Many drivers 
> are still maintained outside the kernel and you aren't providing a solution.

Breaking interfaces to drivers gratuitously would be insane, we're
breaking api to drivers only when we *have* to after thinking twice
about the problem and after excluding backwards compatible alternatives.
And normally the worst thing that can happen is that the driver doesn't
compile anymore.

Here I'm not talking about your buildsystem issue you run into, I'm
talking about true sourcelevel breakeage to kernel modules out of the
kernel that you may find too and that are more difficult to solve than
the buildsystem command already described in the readme.suse.

To make the last recent example we had to break the source API with the
drivers to fix the release_pages race that Andrew found and fixed in
mainline too. That changes page->count into page->_count and quite some
drivers broke even outside the kernel. I had the choice of not breaking
the API but that would had forced us to disable irq and take a per-zone
spinlock in every last put_page(), definitely not desiderable in a
enterprise OS where number matters. I appreciate the ability to fix
things right and to boost performance to the maximum whenever possible,
like it happens in the mainline kernel tree. I even had a lengthy
private discussion with Andrew and it was him suggesting me the
local_irq_disable + atomic_dec_and_lock as the only possible
alternative, but it wasn't attractive enough for performance reasons.
Furthermore in a few years people would be more annoyed by page->count
than by page->_count as people moves into more recent mainline releases.

At another time during 2.4 to support databases using >16G of ram and
running thousand of processes I had to break the pte_offset API to
create pte-highmem to avoid the pte to fill the whole lowmem zone and
run the box oom (luckily at around the same time vmalloc_to_page was
created too, so a more generic API that would work with mainline too
could be suggested to driver developers, and in turn even in this case
over time people should have been more confortable with vmalloc_to_page).

These things don't happen often, but they sometime have to happen and
it's good we can fix them right, unlike if we were shipping a
non-open-source OS that forced us to retain the same API to modules to
boot the machine and in turn to introduce ugly and slow hacks to
workaround bugs. These days the kernel is quite mature so hopefully they
won't happen anymore during stable cycles (I mean after 2.6.7 that
already had to break page->_count) but you never know.

NOTE: the source API with the kernel modules must not be confused with
the _binary_ ABI with userspace. the ABI with userspace is a completely
different matter.  The ABI with userspace (like syscalls) must be the
same for all linux versions. That is very important. The kernel API to
modules not being fixed is a feature and not a bug.

  parent reply	other threads:[~2004-06-22  2:06 UTC|newest]

Thread overview: 181+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-06-18  0:09 4Front Technologies
2004-06-18  0:20 ` Kyle McMartin
2004-06-18 14:51   ` Jesper Juhl
2004-06-18 14:54     ` Jesper Juhl
2004-06-19  2:36     ` Horst von Brand
2004-06-18  0:21 ` Martin J. Bligh
2004-06-18  0:27   ` 4Front Technologies
2004-06-18  0:31     ` Christoph Hellwig
2004-06-18  5:51     ` Martin J. Bligh
2004-06-18 10:39     ` Bernd Petrovitsch
2004-06-18 15:48     ` Andreas Gruenbacher
2004-06-18 17:30       ` Martin Schlemmer
2004-06-18 17:53       ` 4Front Technologies
2004-06-18 18:28         ` Timothy Miller
2004-06-18 18:23           ` 4Front Technologies
2004-06-18 18:54             ` Kyle Moffett
2004-06-18 20:31               ` Hannu Savolainen
2004-06-18 21:37                 ` Kyle Moffett
2004-06-18 19:08             ` Valdis.Kletnieks
2004-06-18 19:43             ` Timothy Miller
2004-06-18 19:02         ` Andreas Dilger
2004-06-18 20:12           ` 4Front Technologies
2004-06-18 19:36             ` Andreas Dilger
2004-06-18 19:40             ` Valdis.Kletnieks
2004-06-18 20:29               ` David Lang
2004-06-18 20:54                 ` Valdis.Kletnieks
2004-06-20 12:56                 ` Hannu Savolainen
2004-06-20 22:11                   ` David Lang
2004-06-21  1:16                     ` 4Front Technologies
2004-06-21  7:07                       ` Hannu Savolainen
2004-06-21  7:25                         ` Xavier Bestel
2004-06-21  8:27                           ` Hannu Savolainen
2004-06-21 13:12                             ` Denis Vlasenko
2004-06-22  2:06                       ` Andrea Arcangeli [this message]
2004-06-22  7:54                         ` Hannu Savolainen
2004-06-22 11:19                           ` Denis Vlasenko
2004-06-22 16:48                             ` 4Front Technologies
2004-06-22 17:46                           ` V13
2004-06-19 16:35       ` Jari Ruusu
2004-06-18 20:46     ` Sam Ravnborg
2004-06-18 20:59       ` 4Front Technologies
2004-06-18 22:59         ` Thomas Gleixner
2004-06-19 16:36       ` Jari Ruusu
2004-06-19 18:01         ` Roman Zippel
2004-06-19 21:12           ` Martin Schlemmer
2004-06-20 15:43           ` Jari Ruusu
2004-06-18  0:39 ` Andrew Morton
2004-06-18  1:29   ` Nicholas S. Wourms
2004-06-18  8:27   ` Jens Axboe
2004-06-18 14:43     ` Rik van Riel
2004-06-18 15:13       ` William Lee Irwin III
2004-06-18 15:33         ` Jan-Benedict Glaw
2004-06-18 17:17           ` Paul Jakma
2004-06-18 18:24             ` Jan-Benedict Glaw
2004-06-18 19:02           ` Tim Bird
2004-06-18 19:45             ` Timothy Miller
2004-06-18 19:46               ` Jan-Benedict Glaw
2004-06-18 20:05             ` Rik van Riel
2004-06-18 20:08               ` Jan-Benedict Glaw
2004-06-18 21:03                 ` jsimmons
2004-06-18 21:10                   ` Jan-Benedict Glaw
2004-06-18 21:13                     ` Jens Axboe
2004-06-18 21:38                       ` Jan-Benedict Glaw
2004-06-18 23:18                         ` jsimmons
2004-06-19  8:19                           ` Jan-Benedict Glaw
2004-06-19  3:34                         ` Horst von Brand
2004-06-22 13:24                           ` Jan-Benedict Glaw
2004-06-18 22:05                   ` viro
2004-06-18 22:10                     ` Jan-Benedict Glaw
2004-06-19 12:42                   ` Francois Romieu
2004-06-19 13:55                     ` Jan-Benedict Glaw
2004-06-20 10:21                       ` Geert Uytterhoeven
2004-06-22 19:34                     ` jsimmons
2004-06-18 20:20               ` Tim Bird
2004-06-18 20:50                 ` Jan-Benedict Glaw
2004-06-18 20:05             ` Jan-Benedict Glaw
2004-06-18 20:03           ` Rik van Riel
2004-06-19 12:09           ` John Jasen
2004-06-19 12:29             ` lkml
     [not found]       ` <2c0942db040618100264ea6b7d@mail.gmail.com>
2004-06-18 17:27         ` Ray Lee
2004-06-18 20:51       ` Andrew Morton
2004-06-18 21:03         ` Rik van Riel
2004-06-18 21:26           ` Jan-Benedict Glaw
2004-06-18 21:17         ` Jens Axboe
2004-06-19 20:59           ` Lars Marowsky-Bree
2004-06-18  0:44 ` viro
2004-06-18  1:00   ` 4Front Technologies
2004-06-18  1:20     ` Roman Zippel
2004-06-18  1:33       ` 4Front Technologies
2004-06-18 10:12         ` Roman Zippel
2004-06-18 17:37           ` Hannu Savolainen
2004-06-18 20:26             ` Roman Zippel
2004-06-18 21:52             ` Jeff Garzik
2004-06-18 22:26               ` Matt Domsch
2004-06-18 23:13                 ` 4Front Technologies
2004-06-19  8:44               ` Hannu Savolainen
2004-06-19  2:59             ` Horst von Brand
2004-06-18  9:57       ` Petr Vandrovec
2004-06-18 13:47         ` Olaf Hering
2004-06-18 14:03           ` Petr Vandrovec
2004-06-18 14:59             ` Duncan Sands
2004-06-18  1:20     ` viro
2004-06-18  1:25     ` Thomas Gleixner
2004-06-18  1:31     ` Nick Piggin
2004-06-18  1:37       ` 4Front Technologies
2004-06-18  1:41         ` Nick Piggin
2004-06-18  2:17         ` Erik Harrison
2004-06-18  7:45         ` John Bradford
2004-06-18  9:05           ` Jan-Benedict Glaw
2004-06-18  1:34     ` Bernd Eckenfels
2004-06-18 10:51       ` Giuseppe Bilotta
2004-06-18  8:48     ` Flavio Stanchina
2004-06-18 10:25     ` Matthias Andree
2004-06-20  5:28       ` Ryan Anderson
2004-06-20  8:13         ` Jaroslav Kysela
2004-06-22 15:17         ` Matthias Andree
2004-06-22 18:22           ` Bill Davidsen
2004-06-18 15:42     ` Timothy Miller
2004-06-18  1:07 ` thinkliberty
2004-06-18  1:12   ` 4Front Technologies
2004-06-18  1:21     ` CaT
2004-06-18  1:37     ` Bastiaan Spandaw
2004-06-18  1:46       ` 4Front Technologies
2004-06-18  2:06         ` Thomas Gleixner
     [not found]           ` <40D259DD.6020604@opensound.com>
2004-06-18 22:53             ` Thomas Gleixner
2004-06-18  5:54         ` Jan-Benedict Glaw
2004-06-18  8:50         ` Helge Hafting
2004-06-18 11:05         ` Redeeman
2004-06-18 15:25         ` Jeff Garzik
2004-06-18 15:51         ` Timothy Miller
2004-06-18 16:53           ` Alex Goddard
2004-06-18 15:46     ` Timothy Miller
2004-06-18  6:40 ` Arjan van de Ven
2004-06-18  8:10 ` Clemens Schwaighofer
2004-06-18 15:34 ` Timothy Miller
     [not found] ` <mailman.1087541100.18231.linux-kernel2news@redhat.com>
2004-06-18 19:47   ` Pete Zaitcev
2004-06-19 16:35     ` Jari Ruusu
2004-06-19 20:52       ` Lars Marowsky-Bree
2004-06-20 15:43         ` Jari Ruusu
2004-06-20 20:44           ` Andreas Gruenbacher
  -- strict thread matches above, loose matches on Subject: below --
2006-10-08  4:43 2.6.19-rc1: known regressions (v2) Trond Myklebust
2006-10-08  4:55 ` Adrian Bunk
     [not found]   ` <1160283948.10192.3.camel@lade.trondhjem.org>
2006-10-08  6:39     ` Adrian Bunk
2006-10-08  7:45       ` Pekka Enberg
2006-10-08 17:28         ` Adrian Bunk
2006-10-08 17:34           ` Jan-Benedict Glaw
2006-10-08 17:59             ` Adrian Bunk
2006-10-08 18:04               ` Jan-Benedict Glaw
2006-10-08 18:15                 ` Adrian Bunk
2006-10-08 18:22                   ` Jan-Benedict Glaw
2006-10-09  1:49             ` Horst H. von Brand
2004-06-22 14:38 Stop the Linux kernel madness Petr Vandrovec
2004-06-22 15:12 ` Jan-Benedict Glaw
2004-06-22 17:32   ` Christoph Hellwig
2004-06-22 18:42     ` Jan-Benedict Glaw
2004-06-22 19:52       ` Petr Vandrovec
2004-06-23 14:58       ` Timothy Miller
2004-06-23 15:03         ` Christoph Hellwig
2004-06-23 16:03           ` Petr Vandrovec
2004-06-23 18:26             ` Vojtech Pavlik
2004-06-23 18:27               ` Lars Marowsky-Bree
2004-05-28  1:55 ftp.kernel.org Ricky Beam
2004-05-28  2:29 ` ftp.kernel.org Martin J. Bligh
2004-05-28  4:21   ` ftp.kernel.org Ricky Beam
2004-05-28  8:41     ` ftp.kernel.org Mark Watts
2004-05-28  6:21       ` ftp.kernel.org Chris Shoemaker
2004-05-28 15:01         ` ftp.kernel.org Theodore Ts'o
2004-05-28 16:32           ` ftp.kernel.org Andreas Dilger
2004-05-29 15:30             ` ftp.kernel.org Daniel Egger
2004-05-30  0:29               ` ftp.kernel.org H. Peter Anvin
2004-05-30  9:43                 ` ftp.kernel.org Andrew Walrond
2004-06-13 22:22                 ` ftp.kernel.org Pedro Larroy
2004-05-28 19:08           ` ftp.kernel.org Chris Shoemaker
2004-05-28 22:15           ` ftp.kernel.org H. Peter Anvin
2004-05-28  8:55       ` ftp.kernel.org Jan-Benedict Glaw
2004-05-28 11:10         ` ftp.kernel.org Mark Watts
2004-05-28 13:57           ` ftp.kernel.org Keith Owens
2004-05-28 22:16           ` ftp.kernel.org H. Peter Anvin
2004-05-29 21:05         ` ftp.kernel.org Horst von Brand
2004-05-30  6:52           ` ftp.kernel.org H. Peter Anvin
2004-05-28 22:17 ` ftp.kernel.org H. Peter Anvin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20040622020615.GE14478@dualathlon.random \
    --to=andrea@suse.de \
    --cc=Valdis.Kletnieks@vt.edu \
    --cc=david.lang@digitalinsight.com \
    --cc=dev@opensound.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®