From: Linus Torvalds <torvalds@linux-foundation.org>
To: david@lang.hm
Cc: Chris Shoemaker <c.shoemaker@cox.net>,
"Rafael J. Wysocki" <rjw@sisk.pl>,
David Miller <davem@davemloft.net>,
linux-kernel@vger.kernel.org,
Andrew Morton <akpm@linux-foundation.org>,
Jiri Slaby <jirislaby@gmail.com>
Subject: Re: Slow DOWN, please!!!
Date: Wed, 30 Apr 2008 17:38:34 -0700 (PDT) [thread overview]
Message-ID: <alpine.LFD.1.10.0804301715560.5994@woody.linux-foundation.org> (raw)
In-Reply-To: <alpine.DEB.1.10.0804301713040.7807@asgard>
On Wed, 30 Apr 2008, david@lang.hm wrote:
>
> look at the mess of the distro kernels in the 2.5 and earlier days. having
> them maintain a large body of patches didn't work for them or for the mainline
> kernel.
Exactly.
I do think Rafael's TCP analogy is somewhat germane, but it misses the
point that the longer the queue gets, the *worse* the quality gets. It
gets worse because the queued-up patches don't actually get tested any
more during their queueing, and because everybody else who isn't
intimately involved with production of said patches just gets *less*
inclined to look at big patch-queue than a small one.
So having a long queue and trying to manage it (by some kind of negative
feedback) is counter-productive, because by the time that situation
happens, you're basically screwed already.
That's what we largely had with the Xen merge, for example. A lot of the
code had been around for basically _forever_, and the people involved in
reviewing it got really tired of it, and there was no way in *hell* a new
person would ever start reviewing the huge backlog. Once it is massive,
it's just too massive.
So trying to push back from the destination is really painful. It's also
aggravating for everybody else. When people were complaining about me not
scaling (remember those flame-wars? Now the complaint is basically the
reverse), it was very painful for everybody, and most of all me.
So I really really hope that if we need throttling (and I do want to point
out that I'm not entirely sure we do - I think the issue is not "number of
commits", but "quality of code", and I do _not_ agree that the two are
directly related in any way), it should be source-based.
Trying to make sure that the source throttles, and not by making
developers feel unproductive. And quite frankly, most things that throttle
the source are of the annoying and non-productive kind. The classic source
throttle tends to be to make it very "expensive" to do development, by
introducing various barriers.
The barriers are usually "you need to have <n> other people look at it",
or "you need to pass this five-hour test-suite", and almost invariably,
the big issue is not code quality, but literally to slow things down. And
call me crazy, but I think that a process that is designed to not
primarily get quality, but slow things down, is likely to generate not
just bad feelings, but actually much worse code too!
And the thing is, I don't even think our main problem is "lots of
changes". I think we've actually been very successful at managing lots of
change. Our problems are elsewhere.
So I think our primary problems are:
- making mistakes is inevitable and cannot be avoided, but we can still
add more layers to make it less likely. But these should *not* be aimed
at being cumbersome to slow things down - they should basically
pipeline perfectly, so that there is no frustrating ping-pong latency.
And linux-next falls into this kind of category: it doesn't really slow
down development, but it would be another "pipeline stage" in the
process.
(In contrast, requiring every patch to have <n> reviewed-by etc would
add huge latencies and slow down things hugely, and just generally be
make-believe work once everybody started gaming the system because it's
so irritating)
- we do want more testing as part of the pipeline (but again, not
synchronously - but to speed up feedback for when things go wrong. So
it wouldn't get rid of the errors, but if it happens quickly enough,
maybe we'd catch things early in the development pipeline before it
even hits my tree)
Having more linux-next testing would be great.
- Regular *user* debuggability and reporting.
Quite frankly, I think the reason a lot of people really like being
able to bisect bugs is not that "git bisect" is such an inherently cool
program, but because it is a really great tool for *users* to
participate in the debugging, in ways oops reports etc were not.
Similarly, I love the oops/warning report statistics that Arjan sends
out. With vendor support users help debugging and reporting without
even necessarily knowing about it. Things like *that* matter a lot.
Notice how none of the above are about slowing down development. I don't
think quality and speed of development are related. In fact, I think
quality and speed often go hand-in-hand: the same way some of the best
programmers are also the most productive, I think some of the most
productive flows are likely to generate the best code!
Linus
next prev parent reply other threads:[~2008-05-01 0:39 UTC|newest]
Thread overview: 229+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-30 2:03 David Miller
2008-04-30 4:03 ` David Newall
2008-04-30 4:18 ` David Miller
2008-04-30 13:04 ` David Newall
2008-04-30 13:18 ` Michael Kerrisk
2008-04-30 14:51 ` Linus Torvalds
2008-04-30 18:21 ` David Newall
2008-04-30 18:27 ` Linus Torvalds
2008-04-30 18:55 ` David Newall
2008-04-30 19:08 ` Linus Torvalds
2008-04-30 19:16 ` David Newall
2008-04-30 19:25 ` Linus Torvalds
2008-05-01 4:31 ` David Newall
2008-05-01 4:37 ` David Miller
2008-05-01 13:49 ` Lennart Sorensen
2008-05-01 15:28 ` Kasper Sandberg
2008-05-01 17:49 ` Russ Dill
2008-05-02 1:47 ` Kasper Sandberg
2008-05-02 2:54 ` Russ Dill
2008-05-02 7:01 ` Kasper Sandberg
2008-05-02 17:34 ` Lee Mathers (TCAFS)
2008-05-02 18:21 ` Andi Kleen
2008-05-02 21:34 ` Kasper Sandberg
2008-04-30 19:06 ` Chris Friesen
2008-04-30 19:13 ` Linus Torvalds
2008-04-30 19:22 ` David Newall
2008-04-30 19:42 ` Linus Torvalds
2008-04-30 7:11 ` Tarkan Erimer
2008-04-30 13:28 ` David Newall
2008-04-30 13:38 ` Mike Galbraith
2008-04-30 14:41 ` mws
2008-04-30 14:55 ` Russ Dill
2008-04-30 14:48 ` Peter Teoh
2008-04-30 19:36 ` Rafael J. Wysocki
2008-04-30 20:00 ` Andrew Morton
2008-04-30 20:20 ` Rafael J. Wysocki
2008-04-30 20:05 ` Linus Torvalds
2008-04-30 20:14 ` Linus Torvalds
2008-04-30 20:56 ` Rafael J. Wysocki
2008-04-30 23:34 ` Greg KH
2008-04-30 20:45 ` Rafael J. Wysocki
2008-04-30 21:37 ` Linus Torvalds
2008-04-30 22:23 ` Rafael J. Wysocki
2008-04-30 22:31 ` Linus Torvalds
2008-04-30 22:41 ` Andrew Morton
2008-04-30 23:23 ` Rafael J. Wysocki
2008-04-30 23:41 ` david
2008-04-30 23:51 ` Rafael J. Wysocki
2008-05-01 0:57 ` Adrian Bunk
2008-05-01 1:25 ` Linus Torvalds
2008-05-01 2:13 ` Adrian Bunk
2008-05-01 2:30 ` Linus Torvalds
2008-05-01 18:54 ` Adrian Bunk
2008-05-14 14:55 ` Pavel Machek
2008-05-01 1:35 ` Theodore Tso
2008-05-01 12:31 ` Tarkan Erimer
2008-05-01 15:34 ` Stefan Richter
2008-05-02 14:05 ` Tarkan Erimer
2008-04-30 22:46 ` Willy Tarreau
2008-04-30 22:52 ` Andrew Morton
2008-04-30 23:21 ` Willy Tarreau
2008-04-30 23:38 ` Chris Shoemaker
2008-04-30 23:20 ` Linus Torvalds
2008-05-01 0:42 ` Rafael J. Wysocki
2008-05-01 1:19 ` Linus Torvalds
2008-05-01 1:31 ` Andrew Morton
2008-05-01 1:43 ` Linus Torvalds
2008-05-01 10:59 ` Rafael J. Wysocki
2008-05-01 15:26 ` Linus Torvalds
2008-05-01 17:09 ` Rafael J. Wysocki
2008-05-01 17:41 ` Linus Torvalds
2008-05-01 18:11 ` Al Viro
2008-05-01 18:23 ` Linus Torvalds
2008-05-01 18:30 ` Linus Torvalds
2008-05-01 18:58 ` Willy Tarreau
2008-05-01 19:37 ` Al Viro
2008-05-01 19:58 ` Andrew Morton
2008-05-01 20:07 ` Joel Becker
2008-05-01 18:50 ` Willy Tarreau
2008-05-01 19:07 ` david
2008-05-01 19:28 ` Willy Tarreau
2008-05-01 19:46 ` david
2008-05-01 19:53 ` Willy Tarreau
2008-05-01 22:17 ` Rafael J. Wysocki
2008-05-01 19:39 ` Friedrich Göpel
2008-05-01 21:59 ` Rafael J. Wysocki
2008-05-02 12:17 ` Stefan Richter
2008-05-01 18:35 ` Chris Frey
2008-05-02 13:22 ` Enrico Weigelt
2008-05-01 1:40 ` Linus Torvalds
2008-05-01 1:51 ` David Miller
2008-05-01 2:01 ` Linus Torvalds
2008-05-01 2:17 ` David Miller
2008-05-01 2:21 ` Al Viro
2008-05-01 5:19 ` david
2008-05-04 3:26 ` Rene Herman
2008-05-01 2:31 ` Nigel Cunningham
2008-05-01 18:32 ` Stephen Clark
2008-05-01 3:53 ` Frans Pop
2008-05-01 11:38 ` Rafael J. Wysocki
2008-04-30 14:28 ` Arjan van de Ven
2008-05-01 12:41 ` Rafael J. Wysocki
2008-04-30 15:06 ` Arjan van de Ven
2008-05-01 5:50 ` Willy Tarreau
2008-05-01 11:53 ` Rafael J. Wysocki
2008-05-01 12:11 ` Will Newton
2008-05-01 13:16 ` Bartlomiej Zolnierkiewicz
2008-05-01 13:53 ` Rafael J. Wysocki
2008-05-01 14:35 ` Bartlomiej Zolnierkiewicz
2008-05-01 15:29 ` Ray Lee
2008-05-01 19:03 ` Willy Tarreau
2008-05-01 19:36 ` Valdis.Kletnieks
2008-05-01 1:30 ` Jeremy Fitzhardinge
2008-05-01 5:35 ` Willy Tarreau
2008-04-30 23:03 ` Rafael J. Wysocki
2008-04-30 22:40 ` david
2008-04-30 23:45 ` Rafael J. Wysocki
2008-04-30 23:57 ` david
2008-05-01 0:01 ` Chris Shoemaker
2008-05-01 0:14 ` david
2008-05-01 0:38 ` Linus Torvalds [this message]
2008-05-01 1:39 ` Jeremy Fitzhardinge
2008-05-01 0:38 ` Adrian Bunk
2008-05-01 0:56 ` Rafael J. Wysocki
2008-05-01 1:25 ` Adrian Bunk
2008-05-01 12:05 ` Rafael J. Wysocki
2008-05-01 13:54 ` Stefan Richter
2008-05-01 14:06 ` Rafael J. Wysocki
2008-04-30 23:29 ` Paul Mackerras
2008-05-01 1:57 ` Jeff Garzik
2008-05-01 2:52 ` Frans Pop
2008-05-01 3:47 ` Linus Torvalds
2008-05-01 4:17 ` Jeff Garzik
2008-05-01 4:46 ` Linus Torvalds
2008-05-04 13:47 ` Krzysztof Halasa
2008-05-04 15:05 ` Jacek Luczak
2008-05-01 9:17 ` Alan Cox
2008-04-30 20:15 ` Andrew Morton
2008-04-30 20:31 ` Linus Torvalds
2008-04-30 20:47 ` Dan Noe
2008-04-30 20:59 ` Andrew Morton
2008-04-30 21:30 ` Rafael J. Wysocki
2008-04-30 21:37 ` Andrew Morton
2008-04-30 22:08 ` Linus Torvalds
2008-04-30 22:53 ` Mariusz Kozlowski
2008-04-30 23:11 ` Andrew Morton
2008-05-12 9:27 ` Ben Dooks
2008-05-02 10:20 ` Andi Kleen
2008-05-02 15:33 ` Mariusz Kozlowski
2008-04-30 20:54 ` Andrew Morton
2008-04-30 21:21 ` David Miller
2008-04-30 21:47 ` Rafael J. Wysocki
2008-04-30 22:02 ` Dmitri Vorobiev
2008-04-30 22:19 ` Ingo Molnar
2008-04-30 22:22 ` David Miller
2008-04-30 22:39 ` Rafael J. Wysocki
2008-04-30 22:54 ` david
2008-04-30 23:12 ` Willy Tarreau
2008-04-30 23:59 ` Rafael J. Wysocki
2008-05-01 0:15 ` Chris Shoemaker
2008-05-01 5:09 ` Willy Tarreau
2008-04-30 22:35 ` Ingo Molnar
2008-04-30 22:49 ` Andrew Morton
2008-04-30 22:51 ` David Miller
2008-05-01 1:40 ` Ingo Molnar
2008-05-01 2:48 ` Adrian Bunk
2008-05-05 3:04 ` Rusty Russell
2008-05-02 13:37 ` Helge Hafting
2008-04-30 21:42 ` Dmitri Vorobiev
2008-04-30 22:06 ` Jiri Slaby
2008-04-30 22:10 ` Andrew Morton
2008-04-30 22:19 ` Linus Torvalds
2008-04-30 22:28 ` Dmitri Vorobiev
2008-05-01 16:26 ` Diego Calleja
2008-05-01 16:31 ` Dmitri Vorobiev
2008-05-02 1:48 ` Stephen Rothwell
2008-05-01 23:06 ` Kevin Winchester
2008-04-30 23:04 ` Dmitri Vorobiev
2008-05-01 15:19 ` Jim Schutt
2008-05-01 6:15 ` Jan Engelhardt
2008-05-09 9:28 ` Jiri Kosina
2008-05-09 15:00 ` Jeff Garzik
2008-04-30 21:52 ` H. Peter Anvin
2008-05-01 3:24 ` Bob Tracy
2008-05-01 16:39 ` Valdis.Kletnieks
2008-05-01 0:31 ` RFC: starting a kernel-testers group for newbies Adrian Bunk
2008-04-30 7:03 ` Arjan van de Ven
2008-05-01 8:13 ` Andrew Morton
2008-04-30 14:15 ` Arjan van de Ven
2008-05-01 12:42 ` David Woodhouse
2008-04-30 15:02 ` Arjan van de Ven
2008-05-05 10:03 ` Benny Halevy
2008-05-04 12:45 ` Rene Herman
2008-05-04 13:00 ` Pekka Enberg
2008-05-04 13:19 ` Rene Herman
2008-05-05 13:13 ` crosscompiler [WAS: RFC: starting a kernel-testers group for newbies] Enrico Weigelt
2008-05-01 9:16 ` RFC: starting a kernel-testers group for newbies Frans Pop
2008-05-01 10:30 ` Enrico Weigelt
2008-05-01 13:02 ` Adrian Bunk
2008-05-01 11:30 ` Adrian Bunk
2008-04-30 14:20 ` Arjan van de Ven
2008-05-01 12:53 ` Rafael J. Wysocki
2008-05-01 13:21 ` Adrian Bunk
2008-05-01 15:49 ` Andrew Morton
2008-05-01 1:13 ` Arjan van de Ven
2008-05-02 9:00 ` Adrian Bunk
2008-05-01 16:38 ` Steven Rostedt
2008-05-01 17:18 ` Andrew Morton
2008-05-01 17:24 ` Theodore Tso
2008-05-01 19:26 ` Andrew Morton
2008-05-01 19:39 ` Steven Rostedt
2008-05-02 10:23 ` Andi Kleen
2008-05-02 2:08 ` Paul Mackerras
2008-05-02 3:10 ` Josh Boyer
2008-05-02 4:09 ` Paul Mackerras
2008-05-02 8:29 ` Adrian Bunk
2008-05-02 10:16 ` Paul Mackerras
2008-05-02 11:58 ` Adrian Bunk
2008-05-02 14:58 ` Linus Torvalds
2008-05-02 15:44 ` Carlos R. Mafra
2008-05-02 16:28 ` Linus Torvalds
2008-05-02 17:15 ` Carlos R. Mafra
2008-05-02 18:02 ` Pallipadi, Venkatesh
2008-05-09 16:32 ` Mark Lord
2008-05-09 19:30 ` Carlos R. Mafra
2008-05-09 20:39 ` Mark Lord
2008-05-01 0:41 ` David Miller
2008-05-01 13:23 ` Adrian Bunk
2008-04-30 20:59 Slow DOWN, please!!! devzero
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=alpine.LFD.1.10.0804301715560.5994@woody.linux-foundation.org \
--to=torvalds@linux-foundation.org \
--cc=akpm@linux-foundation.org \
--cc=c.shoemaker@cox.net \
--cc=davem@davemloft.net \
--cc=david@lang.hm \
--cc=jirislaby@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=rjw@sisk.pl \
/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®