From: "Rafael J. Wysocki" <rjw@sisk.pl>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>,
Adrian Bunk <bunk@stusta.de>,
Michal Piotrowski <michal.k.k.piotrowski@gmail.com>,
Stefan Richter <stefanr@s5r6.in-berlin.de>,
Oleg Verych <olecom@flower.upol.cz>,
Linus Torvalds <torvalds@linux-foundation.org>,
Andi Kleen <andi@firstfloor.org>,
Diego Calleja <diegocg@gmail.com>,
Chuck Ebbert <cebbert@redhat.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: How to improve the quality of the kernel?
Date: Sun, 17 Jun 2007 21:18:17 +0200 [thread overview]
Message-ID: <200706172118.19214.rjw@sisk.pl> (raw)
In-Reply-To: <20070617115258.1f55b29d.akpm@linux-foundation.org>
On Sunday, 17 June 2007 20:52, Andrew Morton wrote:
> On Sun, 17 Jun 2007 20:53:41 +0200 Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> wrote:
>
> >
> >
> > IMO we should concentrate more on preventing regressions than on fixing them.
> > In the long-term preventing bugs is cheaper than fixing them afterwards.
> >
> > First let me tell you all a little story...
> >
> > Over two years ago I've reviewed some _cleanup_ patch and noticed three bugs
> > in it (in other words I potentially prevented three regressions). I also
> > asked for more thorough verification of the patch as I suspected that it may
> > have more problems. The author fixed the issues and replied that he hasn't
> > done the full verification yet but he doesn't suspect any problems...
> >
> > Fast forward...
> >
> > Year later I discover that the final version of the patch hit the mainline.
> > I don't remember ever seeing the final version in my mailbox (there are no
> > cc: lines in the patch description) and I saw that I'm not credited in the
> > patch description. However the worse part is that it seems that the full
> > verification has never been done. The result? Regression in the release
> > kernel (exactly the issue that I was worried about) which required three
> > patches and over a month to be fixed completely. It seems that a year
> > was not enough to get this ~70k _cleanup_ patch fully verified and tested
> > (it hit -mm soon before being merged)...
>
> crap. Commit ID, please ;)
>
> > >From reviewer's POV: I have invested my time into review, discovered real
> > issues and as a reward I got no credit et all and extra frustration from the
> > fact that part of my review was forgotten/ignored (the part which resulted in
> > real regression in the release kernel)... Oh and in the past the said
> > developer has already been asked (politely in private message) to pay more
> > attention to his changes (after I silently fixed some other regression caused
> > by his other patch).
> >
> > But wait there is more, I happend to be the maintainer of the subsystem which
> > got directly hit by the issue and I was getting bugreports from the users about
> > the problem... :-)
> >
> > It wasn't my first/last bad experience as a reviewer... finally I just gave up
> > on reviewing other people patches unless they are stricly for IDE subsystem.
> >
> > The moral of the story is that currently it just doesn't pay off to do
> > code reviews.
>
> I dunno. I suspect (hope) that this was an exceptional case, hence one
> should not draw general conclusions from it. It certainly sounds very bad.
>
> > From personal POV it pays much more to wait until buggy patch
> > hits the mainline and then fix the issues yourself (at least you will get
> > some credit). To change this we should put more ephasize on the importance
> > of code reviews by "rewarding" people investing their time into reviews
> > and "rewarding" developers/maintainers taking reviews seriously.
> >
> > We should credit reviewers more, sometimes it takes more time/knowledge to
> > review the patch than to make it so getting near to zero credit for review
> > doesn't sound too attractive. Hmm, wait it can be worse - your review
> > may be ignored... ;-)
> >
> > >From my side I think I'll start adding less formal "Reviewed-by" to IDE
> > patches even if the review resulted in no issues being found (in additon to
> > explicit "Acked-by" tags and crediting people for finding real issues - which
> > I currently always do as a way for showing my appreciation for their work).
>
> yup, Reviewed-by: is good and I do think we should start adopting it,
> although I haven't thought through exactly how.
>
> On my darker days I consider treating a Reviewed-by: as a prerequisite for
> merging. I suspect that would really get the feathers flying.
How about the following "algorithm":
* Step 1: Send a patch as an RFC to the relevant lists/people and only if there
are no negative comments within at least n days, you are allowed to proceed
to the next step. If anyone has reviewed/acked the patch, add their names
and email addresses as "Reviewed-by"/"Acked-by" to the patch in the next
step.
* Step 2: Send the patch as an RC to the relevant lists/people _and_ LKML and
if there are no negative comments within at least n days, you can proceed to
the next step. If anyone has reviewed/acked the patch, add their names
and email addresses as "Reviewed-by"/"Acked-by" to the patch in the next
step.
* Step 3: Submit the patch for merging to the right maintainer (keeping the
previous CC list).
where n is a number that needs to be determined (I think that n could be 3).
Well, "negative comments" should also be defined more precisely. ;-)
> > I also encourage other maintainers/developers to pay more attention to
> > adding "Acked-by"/"Reviewed-by" tags and crediting reviewers. I hope
> > that maintainers will promote changes that have been reviewed by others
> > by giving them priority over other ones (if the changes are on more-or-less
> > the same importance level of course, you get the idea).
> >
> > Now what to do with people who ignore reviews and/or have rather high
> > regressions/patches ratio?
>
> Ignoring a review would be a wildly wrong thing to do. It's so unusual
> that I'd be suspecting a lost email or an i-sent-the-wrong-patch.
>
> As for high regressions/patches ratio: that'll be hard to calculate and
> tends to be dependent upon the code which is being altered rather than who
> is doing the altering: some stuff is just fragile, for various reasons.
>
> One ratio which we might want to have a think about is the patches-sent
> versus reviews-done ratio ;)
>
> > I think that we should have info about regressions integrated into SCM,
> > i.e. in git we should have optional "fixes-commit" tag and we should be
> > able to do some reverse data colletion. This feature combined with
> > "Author:" info after some time should give us some very interesting
> > statistics (Top Ten "Regressors"). It wouldn't be ideal (ie. we need some
> > patches threshold to filter out people with 1 patch and >= 1 regression(s),
> > we need to remember that some code areas are more difficult than the others
> > and that patches are not equal per se etc.) however I believe than making it
> > into Top Ten "Regressors" should give the winners some motivation to improve
> > their work ethic. Well, in the worst case we would just get some extra
> > trivial/documentation patches. ;-)
>
> We of course do want to minimise the amount of overhead for each developer.
> I'm a strong believer in specialisation: rather than requiring that *every*
> developer/maintainer integrate new steps in their processes it would be
> better to allow them to proceed in a close-to-usual fashion and to provide
> for a specialist person (or team) to do the sorts of things which you're
> thinking about.
Still, even very experienced developers make trivial mistakes, so there should
be a way to catch such things before they hit -rc or even -mm kernels
Greetings,
Rafael
--
"Premature optimization is the root of all evil." - Donald Knuth
next prev parent reply other threads:[~2007-06-17 19:16 UTC|newest]
Thread overview: 289+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-04-26 3:29 Linux 2.6.21 Linus Torvalds
2007-04-26 4:08 ` Adrian Bunk
2007-04-26 4:38 ` Dave Jones
2007-04-26 5:02 ` Greg KH
2007-04-26 5:44 ` Nick Piggin
2007-04-26 5:04 ` Willy Tarreau
2007-04-26 6:28 ` Jeff Chua
2007-04-26 6:46 ` Daniel Barkalow
2007-04-26 8:03 ` Oliver Neukum
2007-04-26 12:32 ` Adrian Bunk
2007-04-26 8:42 ` Soeren Sonnenburg
2007-04-26 9:20 ` Jens Axboe
2007-04-26 10:44 ` Jesper Juhl
2007-04-26 12:58 ` Adrian Bunk
2007-04-26 15:47 ` Linus Torvalds
2007-04-26 16:59 ` Adrian Bunk
2007-04-26 17:20 ` Linus Torvalds
2007-04-26 17:48 ` Adrian Bunk
2007-04-26 18:37 ` Krzysztof Halasa
2007-04-26 18:45 ` Adrian Bunk
2007-04-26 19:55 ` Krzysztof Halasa
2007-04-26 21:34 ` Mel Gorman
2007-04-26 19:11 ` Stephen Clark
2007-04-27 17:14 ` Michael Tokarev
2007-04-27 19:35 ` Stefan Richter
2007-04-28 20:44 ` Krzysztof Halasa
2007-04-26 20:50 ` Alan Cox
2007-04-27 14:58 ` Adrian Bunk
2007-04-27 16:31 ` Theodore Tso
2007-04-27 19:46 ` Adrian Bunk
2007-04-27 20:23 ` Stephen Clark
2007-04-28 12:51 ` Markus Rechberger
2007-04-27 21:17 ` Bill Davidsen
2007-04-26 17:02 ` Chuck Ebbert
2007-04-26 18:13 ` Diego Calleja
2007-04-26 18:42 ` Linus Torvalds
2007-04-26 20:41 ` Diego Calleja
2007-04-26 21:13 ` Linus Torvalds
2007-04-27 9:33 ` Marek Wawrzyczny
2007-04-28 19:08 ` Martin J. Bligh
2007-04-28 22:11 ` Neil Brown
2007-04-28 22:33 ` Adrian Bunk
2007-04-28 22:42 ` Neil Brown
2007-04-28 23:14 ` Rafael J. Wysocki
2007-04-29 0:17 ` Linus Torvalds
2007-04-29 3:03 ` Andrew Morton
2007-04-29 0:07 ` Linus Torvalds
2007-04-29 3:28 ` Andrew Morton
2007-04-28 19:53 ` Adrian Bunk
[not found] ` <alpine.LFD.0.98.0704281529080. 9964@woody.linux-foundation.org>
2007-04-28 20:27 ` Russell King
2007-04-28 21:43 ` irks with bugzilla (was Re: Linux 2.6.21) Stefan Richter
2007-04-28 22:49 ` Linux 2.6.21 Adrian Bunk
2007-04-28 23:29 ` Linus Torvalds
2007-04-29 13:15 ` Andi Kleen
2007-04-29 16:07 ` Linus Torvalds
2007-04-29 16:34 ` Stefan Richter
2007-04-29 16:49 ` Rafael J. Wysocki
2007-04-29 17:37 ` Andi Kleen
2007-04-29 17:50 ` Linus Torvalds
2007-06-14 6:29 ` regression tracking (Re: Linux 2.6.21) Oleg Verych
2007-06-14 15:33 ` Stefan Richter
2007-06-14 16:39 ` Oleg Verych
2007-06-14 16:36 ` Stefan Richter
2007-06-14 17:30 ` Adrian Bunk
2007-06-14 20:33 ` Oleg Verych
2007-06-14 20:46 ` Adrian Bunk
2007-06-15 23:20 ` Linus Torvalds
2007-06-15 23:42 ` Adrian Bunk
2007-06-16 1:32 ` Oleg Verych
2007-06-16 2:55 ` Adrian Bunk
2007-06-16 5:03 ` Oleg Verych
2007-06-16 13:25 ` Adrian Bunk
2007-06-16 12:23 ` Stefan Richter
2007-06-16 12:54 ` Michal Piotrowski
2007-06-17 0:44 ` Adrian Bunk
2007-06-17 9:41 ` [PATCH] (Re: regression tracking (Re: Linux 2.6.21)) Michal Piotrowski
2007-06-17 9:55 ` Andrew Morton
2007-06-17 10:22 ` Michal Piotrowski
2007-06-17 11:47 ` Oleg Verych
2007-06-17 12:13 ` Rafael J. Wysocki
2007-06-17 14:24 ` Oleg Verych
2007-06-17 14:48 ` Adrian Bunk
2007-06-17 17:44 ` david
2007-06-17 21:23 ` Oleg Verych
2007-06-17 12:01 ` Rafael J. Wysocki
2007-06-17 12:45 ` Adrian Bunk
2007-06-17 13:17 ` Michal Piotrowski
2007-06-17 14:02 ` Stefan Richter
2007-06-17 14:29 ` How to improve the quality of the kernel? Adrian Bunk
2007-06-17 16:15 ` Michal Piotrowski
2007-06-17 16:26 ` Stefan Richter
2007-06-17 16:47 ` Michal Piotrowski
2007-06-17 18:24 ` Adrian Bunk
2007-06-17 18:44 ` Stefan Richter
2007-06-17 18:50 ` Natalie Protasevich
2007-06-22 12:01 ` Markus Rechberger
2007-06-22 14:19 ` Stefan Richter
2007-06-22 15:25 ` Oleg Verych
2007-06-17 17:31 ` Rafael J. Wysocki
2007-06-17 17:42 ` Natalie Protasevich
2007-06-17 18:16 ` Rafael J. Wysocki
2007-06-17 19:31 ` Adrian Bunk
2007-06-17 18:53 ` Bartlomiej Zolnierkiewicz
2007-06-17 18:52 ` Andrew Morton
2007-06-17 19:18 ` Rafael J. Wysocki [this message]
2007-06-17 19:33 ` Carlo Wood
2007-06-17 20:00 ` Stefan Richter
2007-06-17 20:10 ` Michal Piotrowski
2007-06-17 21:49 ` Bartlomiej Zolnierkiewicz
2007-06-17 23:15 ` Stefan Richter
2007-06-18 0:22 ` Bartlomiej Zolnierkiewicz
2007-06-18 0:32 ` Stefan Richter
2007-06-18 5:09 ` Andrew Morton
2007-06-18 13:23 ` Fortier,Vincent [Montreal]
2007-06-18 22:31 ` Natalie Protasevich
2007-06-18 22:41 ` Martin Bligh
2007-06-18 22:56 ` Natalie Protasevich
2007-06-18 23:59 ` Martin Bligh
2007-06-19 0:09 ` Linus Torvalds
2007-06-19 0:24 ` Natalie Protasevich
2007-06-19 0:42 ` Martin Bligh
2007-06-19 0:55 ` Natalie Protasevich
2007-06-19 1:10 ` Martin Bligh
2007-06-19 4:06 ` This is [Re:] How to improve the quality of the kernel[?] Oleg Verych
2007-06-19 12:48 ` Adrian Bunk
2007-06-19 14:05 ` Oleg Verych
2007-06-19 14:27 ` Stefan Richter
2007-06-19 15:47 ` Oleg Verych
2007-06-19 17:50 ` Stefan Richter
2007-06-19 18:56 ` Oleg Verych
2007-06-19 19:21 ` Stefan Richter
2007-06-19 15:04 ` Adrian Bunk
2007-06-19 15:08 ` Stefan Richter
2007-06-19 17:14 ` Oleg Verych
2007-06-19 15:01 ` Linus Torvalds
2007-06-19 16:53 ` Oleg Verych
2007-06-19 17:04 ` Linus Torvalds
2007-06-19 17:37 ` Natalie Protasevich
2007-06-19 17:51 ` Oleg Verych
2007-06-21 23:51 ` Adrian Bunk
2007-06-21 23:59 ` Linus Torvalds
2007-06-22 0:16 ` Adrian Bunk
2007-06-21 23:48 ` Adrian Bunk
2007-06-19 13:30 ` Don Armstrong
2007-06-19 1:51 ` How to improve the quality of the kernel? Fortier,Vincent [Montreal]
2007-06-19 2:27 ` Natalie Protasevich
2007-06-19 11:06 ` Stefan Richter
2007-06-17 23:15 ` Rafael J. Wysocki
2007-06-18 1:04 ` Bartlomiej Zolnierkiewicz
2007-06-17 18:54 ` Michal Piotrowski
2007-06-19 0:28 ` regression tracking (Re: Linux 2.6.21) Martin Bligh
2007-06-19 14:49 ` Rafael J. Wysocki
2007-06-19 17:27 ` Martin J. Bligh
2007-04-29 18:50 ` Linux 2.6.21 Rafael J. Wysocki
2007-04-29 18:58 ` Linus Torvalds
2007-04-29 19:14 ` Andi Kleen
2007-04-29 20:18 ` Rafael J. Wysocki
2007-04-29 20:43 ` Adrian Bunk
2007-04-29 22:00 ` Rafael J. Wysocki
2007-04-29 22:00 ` Adrian Bunk
2007-04-29 23:14 ` Rafael J. Wysocki
2007-04-29 20:52 ` Alexey Dobriyan
2007-04-29 22:09 ` Rafael J. Wysocki
2007-04-30 6:30 ` Andrew Morton
2007-04-30 23:08 ` Rafael J. Wysocki
2007-05-04 18:18 ` Bugzilla (was Linux 2.6.21) Martin J. Bligh
2007-04-30 5:43 ` Linux 2.6.21 Willy Tarreau
2007-04-29 17:35 ` Andi Kleen
2007-04-29 17:47 ` Linus Torvalds
2007-04-29 18:09 ` Andi Kleen
2007-04-29 18:47 ` Linus Torvalds
2007-04-29 18:59 ` Rafael J. Wysocki
2007-04-29 19:31 ` Russell King
2007-04-29 19:40 ` Diego Calleja
2007-04-29 19:51 ` Michal Piotrowski
2007-04-30 1:50 ` Gene Heskett
2007-04-30 4:54 ` Bernd Eckenfels
2007-04-30 5:06 ` Gene Heskett
2007-04-29 20:17 ` Adrian Bunk
2007-04-29 20:33 ` Linus Torvalds
2007-04-29 21:05 ` Adrian Bunk
2007-04-29 21:24 ` Linus Torvalds
2007-04-30 7:45 ` Anton Altaparmakov
2007-04-30 18:09 ` Adrian Bunk
2007-04-30 18:20 ` Linus Torvalds
2007-04-30 18:27 ` Linus Torvalds
2007-04-30 18:57 ` Adrian Bunk
2007-04-30 19:25 ` Vegard Nossum
2007-04-29 22:36 ` Johannes Stezenbach
2007-04-29 23:18 ` Indan Zupancic
2007-04-29 23:41 ` Johannes Stezenbach
2007-04-30 0:05 ` Indan Zupancic
2007-04-30 7:54 ` Matthias Andree
2007-04-29 20:56 ` Diego Calleja
2007-04-29 21:10 ` Adrian Bunk
2007-04-29 21:16 ` Michal Piotrowski
2007-04-29 21:21 ` Adrian Bunk
2007-04-29 21:26 ` Michal Piotrowski
2007-04-29 21:52 ` Thomas Gleixner
2007-04-29 22:19 ` Adrian Bunk
2007-04-29 22:33 ` Thomas Gleixner
2007-04-29 22:37 ` Andi Kleen
2007-04-29 22:48 ` Michal Piotrowski
2007-04-29 23:09 ` Andi Kleen
2007-04-29 22:42 ` Adrian Bunk
2007-04-29 22:57 ` Michal Piotrowski
2007-04-29 21:51 ` Diego Calleja
2007-04-29 23:19 ` Rafael J. Wysocki
2007-04-29 21:29 ` Francois Romieu
2007-05-02 19:59 ` Lennart Sorensen
2007-04-29 20:01 ` David Miller
2007-04-29 21:26 ` Andi Kleen
2007-04-29 21:41 ` David Miller
2007-04-29 22:15 ` Andi Kleen
2007-04-29 20:38 ` Simon Arlott
2007-04-30 7:34 ` Matthias Andree
2007-04-29 23:55 ` Theodore Tso
2007-04-30 0:13 ` Dave Jones
2007-04-30 1:14 ` Björn Steinbrink
2007-04-30 1:31 ` Andi Kleen
2007-04-30 5:02 ` Kyle Moffett
2007-04-30 7:59 ` Johannes Stezenbach
2007-04-30 16:51 ` David Lang
2007-04-29 7:34 ` Russell King
2007-04-28 22:33 ` Linus Torvalds
2007-04-28 22:58 ` Markus Rechberger
2007-04-28 23:40 ` Linus Torvalds
2007-04-29 0:05 ` Adrian Bunk
2007-04-29 21:27 ` Dave Jones
2007-04-29 21:27 ` David Lang
2007-04-29 22:09 ` Adrian Bunk
2007-04-29 0:20 ` Bob Tracy
2007-04-29 0:40 ` Markus Rechberger
2007-04-29 0:28 ` Markus Rechberger
2007-04-29 3:40 ` David Miller
2007-04-29 6:43 ` David Lang
2007-04-29 9:34 ` Stefan Richter
2007-04-29 9:40 ` Stefan Richter
2007-04-29 6:01 ` Willy Tarreau
2007-04-29 9:53 ` Stefan Richter
2007-04-29 7:37 ` Russell King
2007-04-28 23:04 ` Adrian Bunk
2007-04-28 23:58 ` Linus Torvalds
2007-04-29 3:41 ` David Miller
2007-04-29 8:44 ` Thomas Gleixner
2007-04-30 18:13 ` Borislav Petkov
2007-04-26 17:39 ` Bill Davidsen
2007-04-26 17:44 ` Linus Torvalds
2007-04-27 21:14 ` Bill Davidsen
2007-04-26 23:32 ` Thomas Gleixner
2007-04-27 0:22 ` Linus Torvalds
2007-04-27 23:08 ` Daniel Barkalow
2007-04-26 17:23 ` Bill Davidsen
2007-04-26 18:04 ` Jeff Garzik
2007-04-26 18:36 ` Adrian Bunk
2007-04-26 18:58 ` Francois Romieu
2007-04-26 19:13 ` Jeff Garzik
2007-04-26 19:19 ` Adrian Bunk
2007-04-26 19:43 ` Stephen Clark
2007-04-26 19:43 ` Francois Romieu
2007-04-26 19:53 ` Stephen Clark
[not found] ` <4630FC6C.6070902@seclark.us>
[not found] ` <4630FE8D.6090900@garzik.org>
2007-04-26 19:48 ` Stephen Clark
2007-04-27 15:22 ` Stephen Clark
2007-04-26 19:13 ` Adrian Bunk
2007-04-26 19:14 ` Stephen Clark
2007-04-26 19:32 ` Jeff Garzik
2007-04-26 21:02 ` Gene Heskett
2007-04-26 21:02 ` Gene Heskett
2007-04-27 21:36 ` Bill Davidsen
2007-04-26 6:30 ` Jan De Luyck
2007-04-26 8:23 ` Marat Buharov
2007-04-27 6:30 ` Jan Engelhardt
2007-04-26 8:35 ` Jan Engelhardt
2007-04-26 16:40 ` Linus Torvalds
2007-04-26 19:02 ` Willy Tarreau
2007-04-27 4:08 ` Mike Galbraith
2007-04-26 19:57 ` Jan Engelhardt
2007-04-26 21:59 ` Mel Gorman
-- strict thread matches above, loose matches on Subject: below --
2007-06-17 22:41 How to improve the quality of the kernel? Al Boldi
2007-06-17 22:55 ` Michal Piotrowski
2007-06-18 3:55 ` Al Boldi
2007-06-20 21:34 ` Adrian Bunk
2007-06-21 3:26 ` Al Boldi
2007-06-21 13:07 ` Adrian Bunk
2007-06-21 13:41 ` Al Boldi
2007-06-21 13:57 ` Adrian Bunk
2007-06-21 21:33 ` Al Boldi
2007-06-22 11:24 ` Adrian Bunk
2007-06-21 15:48 ` Stefan Richter
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=200706172118.19214.rjw@sisk.pl \
--to=rjw@sisk.pl \
--cc=akpm@linux-foundation.org \
--cc=andi@firstfloor.org \
--cc=bunk@stusta.de \
--cc=bzolnier@gmail.com \
--cc=cebbert@redhat.com \
--cc=diegocg@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=michal.k.k.piotrowski@gmail.com \
--cc=olecom@flower.upol.cz \
--cc=stefanr@s5r6.in-berlin.de \
--cc=torvalds@linux-foundation.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