From: Linus Torvalds <torvalds@linux-foundation.org>
To: Willy Tarreau <w@1wt.eu>
Cc: "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 16:20:29 -0700 (PDT) [thread overview]
Message-ID: <alpine.LFD.1.10.0804301555330.2980@woody.linux-foundation.org> (raw)
In-Reply-To: <20080430224610.GO8474@1wt.eu>
On Thu, 1 May 2008, Willy Tarreau wrote:
> >
> > Any suggestions on how to convince people that their code is not worth
> > merging?
>
> I think you're approaching a solution Linus. If developers take a refusal
> as a punishment, maybe you can use that for trees which have too many
> unresolved regressions.
Heh. It's been done. In fact, it's done all the time on a smaller scale.
It's how I've enforced some cleanliness or process issues ("I won't pull
that because it's too ugly"). I see similar messages floating around about
individual patches.
That said, I don't think it really works that well as "the solution": it
works as a small part of the bigger picture, but no, we can't see
punishment as the primary model for encouraging better bevaiour.
First off, and maybe this is not true, but I don't think it is a very
healthy way to handle issues in general. I may come off as an opinionated
bastard in discussions like these, and I am, but when it actually comes to
maintaining code, really prefer a much softer approach.
I want to _trust_ people, and I really don't want to be a "you need to do
'xyz' or else" kind of guy.
So I'll happily say "I can't merge this, because xyz", where 'xyz' is
something that is related to the particular code that is actually merged.
But quite frankly, holding up _unrelated_ fixes, because some other issue
hasn't been resolved, I really try to not do that.
So I'll say "I don't want to merge this, because quite frankly, we've had
enough code for this merge window already, it can wait". That tends to
happen at the end of the merge window, but it's not a threat, it's just me
being tired of the worries of inevitable new issues at the end of the
window.
And I personally feel that this is important to keep people motivated.
Being too stick-oriented isn't healthy.
The other reason I don't believe in the "won't merge until you do 'xyz'"
kind of thing as a main development model is that it traditionally hasn't
worked. People simply disagree, the vendors will take the code that their
customers need, the users will get the tree that works for them, and
saying "I won't merge it" won't help anybody if it's actually useful.
Finally, the people I work with may not be perfect, but most maintainers
are pretty much experts within their own area. At some point you have to
ask yourself: "Could I do better? Would I have the time? Could I find
somebody else to do better?" and not just in a theoretical way. And if the
answer is "no", then at that point, what else can you do?
Yes, we have personalities that clash, and merge problems. And let's face
it, as kernel developers, we aren't exactly a very "cuddly" group of
people. People are opinionated and not afraid to speak their mind. But on
the whole, I think the kernel development community is actually driven a
lot more by _positive_ things than by the stick of "I won't get merged
unless I shape up".
So quite frankly, I'd personally much rather have a process that
encourages people to have so much _pride_ in what they do that they want
it to be seen as being really good (and hopefully then that pride means
that they won't take crap!) than having a chain of fear that trickles
down.
So this is why, for example, I have so strongly encouraged git maintainers
to think of their public trees as "releases". Because I think people act
differently when they *think* of their code as a release than when they
think of it as a random development tree.
I do _not_ want to slow down development by setting some kind of "quality
bar" - but I do believe that we should keep our quality high, not because
of any hoops we need to jump through, but because we take pride in the
thing we do.
[ An example of this: I don't believe code review tends to much help in
itself, but I *do* believe that the process of doing code review makes
people more aware of the fact that others are looking at the code they
produce, and that in turn makes the code often better to start with.
And I think publicly announced git trees and -mm and linux-next are
great partly because they end up doing that same thing. I heartily
encourage submaintainers to always Cc: linux-kernel when they send me a
"please pull" request - I don't know if anybody else ever really pulls
that tree, but I do think that it's very healthy to write that message
and think of it as a publication event. ]
Linus
next prev parent reply other threads:[~2008-04-30 23:20 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 [this message]
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
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.0804301555330.2980@woody.linux-foundation.org \
--to=torvalds@linux-foundation.org \
--cc=akpm@linux-foundation.org \
--cc=davem@davemloft.net \
--cc=jirislaby@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=rjw@sisk.pl \
--cc=w@1wt.eu \
/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®