Linux Kernel Summit discussions
 help / color / mirror / Atom feed
From: Linus Torvalds <torvalds@linux-foundation.org>
To: Sasha Levin <Alexander.Levin@microsoft.com>
Cc: ksummit <ksummit-discuss@lists.linuxfoundation.org>
Subject: Re: [Ksummit-discuss] [MAINTAINERS SUMMIT] Bug-introducing patches
Date: Fri, 7 Sep 2018 08:52:40 -0700	[thread overview]
Message-ID: <CA+55aFzp340RDJUDoOGtN5ENgdCSSkksvG0yPt74BgyvTrAE4Q@mail.gmail.com> (raw)
In-Reply-To: <20180907145437.GF16300@sasha-vm>

On Fri, Sep 7, 2018 at 7:54 AM Sasha Levin
<Alexander.Levin@microsoft.com> wrote:
>
> 1. You argue that fixes for features that were merged in the current
> window are getting more and more tricky as -rc cycles go on, and I agree
> with that.

Well, yes, and no. There's two sides to my argument.

Yes, for the current merge window, one issue is that the fixes get
trickier as time goes on (just based on "it took longer to find"). But
that wasn't actually the *bulk* of the argument.

The bulk of the argument is that there's a selection bias, which shows
up as "fixes look worse", and that *also* gets worse as you get later
in the rc period.

> 2. You argue that stable fixes (i.e. fixes for bugs introduced in
> previous kernel versions) are getting trickier as -rc cycles go on -
> which I completely disagree with.

No, this is not the "trickier because it took longer to find". This is
mostly the "fixes during the merge window get lost in the noise"
argument.

Why does rc5+ look worse than the merge window when you do statistics?
Because when you look for fixes *early* in the release, you are simply
mixing those fixes up with a lot of "background noise".

Note that this is true even if you were to look _only_ at fixes. The
simple non-critical fixes don't tend to get pushed to me during the
later rc series at all. If it's not critical, but simply fixes some
random issue, people put it in their "next" branch.

And *that* gets more common as the rc series gets later.

So you have a double whammy. Later rc's get fewer patches overall -
obviously there shouldn't be anything *but* fixes, but we all know
that's not entirely true - and even when it comes to fixes it gets
fewer of the of the trivial non-critical ones.

What are left? During the later rc series, I argue that even for
stable fixes, you *should* expect to see more of the nasty kinds of
fixes, and - again, BY DEFINITION - fixes that got less testing time
in linux-next.

Why the "BY DEFINITION"? Simply exactly because of that simple issue
of "people thought this was a critical issue, so they pushed it late
in the rc rather than putting it in their pile for the next merge
window" issue.

Don't you see how that *directly* translates into your "less testing
time" metric?

It's not even a correlation, it's literally just direct causation.

But this is not something we can or we should change. A more important
fix *should* go on earlier, for chrissake! That's such an obvious
thing that I really don't see anybody seriously arguing anything else.

Put another way: of _course_ the simple and less important stuff gets
delayed more, and of _course_ that means that they look better in your
"testing time metrics".

And of _course_ the simple stuff causes less problems.

So this is what my argument really boils down to: the more critical a
patch is, the more likely it is to be pushed more aggressively, which
in turn makes it statistically much more likely to show up not only
during the latter part of the development cycle, but it will directly
mean that it looks "less tested".

And AT THE SAME TIME, the more critical a patch is, the more likely it
is to also show up as a problem spot for distros. Because, by
definition, it touched something critical and likely subtle.

End result: BY DEFINITION you'll see a correlation between "less
testing" and "more problems".

But THAT is correlation. That's not the fundamental causation.

Now, I agree that it's correlation that makes sense to treat as
causation. It just is very tempting to say: "less testing obviously
means more problems". And I do think that it's very possibly a real
causal property as well, but my argument has been that it's not at all
obviously so, exactly because I would expect that correlation to exist
even if there was absolutely ZERO causality.

See what my argument is? You're arguing from correlation. And I think
there is a much more direct causal argument that explains a lot of the
correlation.

> Stable fixes look the same whether they showed up during the merge
> window, -rc1 or -rc8, they are disconnected from whatever stage we're at
> in the release cycle.

See above. That's simply not true. An unimportant stable fix is less
likely to show up in rc8 than in the merge window. Again, for the
selection bias.

The stuff that shows up in late rc's really is supposed to be somewhat special.

Will there be critical stable fixes during merge window and early
rc's? Yes. But they will be statistically fewer, simply because
there's a lot of the non-critical stuff.

> If you agree with me on that, maybe you could explain why most of the
> stable regressions seem to show up in -rc5 or later? Shouldn't there be
> an even distribution of stable regressions throughout the release cycle?

First off, I obviously don't agree with your.

But secondly, an N=5 is likely not statistically relevant anyway.

And thirdly, clearly some of the problems stable has isn't about the
patch itself, which was fine in mainline. Even in your N=5 case, we
had at least one of those (the TCP one), where the problem was that
another patch it depended on hadn't been backported.

That, btw, might be another "later rcs look worse in stable". Simply
because fixes in later rcs obviously have way more of the "we found
this in this cycle because of the _other_ changes we were working on
during this release". Maybe the other changes _triggered_ the problem
more easily, for example. So then you find a (subtle) bug, and realize
that the bug has been there for years, and mark it for stable.

And guess what? That fix for a N-year-old bug is now fundamentally
more likely to depend on all the changes you just did, which weren't
necessarily marked for stable, because they supposedly weren't
bugfixes.

See? I'm just arguing that there can be correlations with problems
that are much more likely than "it spent only 3 days in next before it
got into mainline".

> Sure, the various bots cover much less ground than actual users testing
> stuff out.
>
> However, your approach discourages further development of those bots.

So that I absolutely do *not* want to do, and not want to be seen doing.

But honestly, I do not think "it got merged early" should even be seen
as that kind of argument. There should be *more* bots testing things I
merge. Because even when you test linux-next, you're by implication
testing the stuff I'm merging, since mainline too gets merged into
linux-next.

So I do think that it's true that

 (a) bots generally haven't hit the issues in question, because if
they had, they would have been seen and noted _before_ they made it to
stable

 (b) bots potentially *cannot* hit it in mainline or linux-next,
because what gets back-ported is not "mainline or linux-next", but a
tiny tiny percentage of it, and the very act of backporting may be the
thing that introduces the problem

but neither of those arguments is an argument to discourage further
development of bots. Quite the reverse.

                 Linus

  reply	other threads:[~2018-09-07 15:52 UTC|newest]

Thread overview: 138+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-04 20:16 [Ksummit-discuss] [MAINTAINERS SUMMIT] Bug-introducing patches Sasha Levin
2018-09-04 20:53 ` Daniel Vetter
2018-09-05 14:17   ` Steven Rostedt
2018-09-07  0:51     ` Sasha Levin
2018-09-07  1:09       ` Steven Rostedt
2018-09-07 20:12         ` Greg KH
2018-09-07 21:12           ` Greg KH
2018-09-07  1:09       ` Linus Torvalds
2018-09-07  1:49         ` Sasha Levin
2018-09-07  2:31           ` Linus Torvalds
2018-09-07  2:45             ` Steven Rostedt
2018-09-07  3:43               ` Linus Torvalds
2018-09-07  8:52                 ` Daniel Vetter
2018-09-07  8:40               ` Geert Uytterhoeven
2018-09-07  9:07                 ` Daniel Vetter
2018-09-07  9:28                   ` Geert Uytterhoeven
2018-09-07 17:05                   ` Olof Johansson
2018-09-07 14:54             ` Sasha Levin
2018-09-07 15:52               ` Linus Torvalds [this message]
2018-09-07 16:17                 ` Linus Torvalds
2018-09-07 21:39                   ` Mauro Carvalho Chehab
2018-09-09 12:50                   ` Stephen Rothwell
2018-09-10 20:05                     ` Tony Lindgren
2018-09-10 19:43                 ` Sasha Levin
2018-09-10 20:45                   ` Steven Rostedt
2018-09-10 21:20                     ` Guenter Roeck
2018-09-10 21:46                       ` Steven Rostedt
2018-09-10 23:03                         ` Eduardo Valentin
2018-09-10 23:13                           ` Steven Rostedt
2018-09-11 15:42                             ` Steven Rostedt
2018-09-11 17:40                               ` Tony Lindgren
2018-09-11 17:47                                 ` James Bottomley
2018-09-11 18:12                                   ` Eduardo Valentin
2018-09-11 18:17                                     ` Geert Uytterhoeven
2018-09-12 15:15                                       ` Eduardo Valentin
2018-09-11 18:19                                     ` James Bottomley
2018-09-12 15:17                                       ` Eduardo Valentin
2018-09-11 18:39                                   ` Steven Rostedt
2018-09-11 20:09                                     ` James Bottomley
2018-09-11 20:31                                       ` Steven Rostedt
2018-09-11 22:53                                         ` James Bottomley
2018-09-11 23:04                                           ` Sasha Levin
2018-09-11 23:11                                             ` James Bottomley
2018-09-11 23:20                                               ` Sasha Levin
2018-09-12 15:41                                                 ` Eduardo Valentin
2018-09-11 23:22                                           ` Tony Lindgren
2018-09-11 23:29                                             ` James Bottomley
2018-09-12 11:55                                               ` Geert Uytterhoeven
2018-09-12 12:03                                                 ` Laurent Pinchart
2018-09-12 12:29                                                   ` Thomas Gleixner
2018-09-12 12:53                                                     ` Laurent Pinchart
2018-09-12 13:10                                                       ` Alexandre Belloni
2018-09-12 13:30                                                         ` Thomas Gleixner
2018-09-12 23:16                                                         ` Laurent Pinchart
2018-09-12 14:11                                                       ` Thomas Gleixner
2018-09-19  8:26                                                         ` Laurent Pinchart
2018-09-20  9:02                                                           ` Rafael J. Wysocki
2018-09-20 10:10                                                             ` Laurent Pinchart
2018-09-20 11:00                                                               ` Daniel Vetter
2018-09-20 11:08                                                                 ` Laurent Pinchart
2018-09-20 11:49                                                                   ` Daniel Vetter
2018-09-12 12:36                                                 ` James Bottomley
2018-09-12 13:38                                                   ` Guenter Roeck
2018-09-12 13:59                                                     ` Tony Lindgren
2018-09-12 10:04                                             ` Mark Brown
2018-09-12 20:24                                           ` Steven Rostedt
2018-09-12 20:29                                             ` Sasha Levin
2018-09-13  0:19                                             ` Stephen Rothwell
2018-09-13 11:39                                               ` Mark Brown
2018-09-19  6:27                                                 ` Stephen Rothwell
2018-09-19 17:24                                                   ` Mark Brown
2018-09-19 21:42                                                     ` Stephen Rothwell
2018-09-11  0:49                           ` Stephen Rothwell
2018-09-11  1:01                             ` Al Viro
2018-09-11  0:47                         ` Stephen Rothwell
2018-09-11 17:35                           ` Linus Torvalds
2018-09-11  0:43                       ` Stephen Rothwell
2018-09-11 16:49                         ` Guenter Roeck
2018-09-11 17:47                           ` Guenter Roeck
2018-09-11 11:18                       ` Mark Brown
2018-09-11 17:02                         ` Guenter Roeck
2018-09-11 17:12                           ` Jani Nikula
2018-09-11 17:31                             ` Mark Brown
2018-09-11 17:41                               ` Daniel Vetter
2018-09-11 18:54                                 ` Mark Brown
2018-09-11 18:03                             ` Geert Uytterhoeven
2018-09-11 17:22                           ` James Bottomley
2018-09-11 17:56                             ` Mark Brown
2018-09-11 18:00                               ` James Bottomley
2018-09-11 18:16                                 ` Mark Brown
2018-09-11 18:07                             ` Geert Uytterhoeven
2018-09-12  9:09                             ` Dan Carpenter
2018-09-11 17:26                           ` Mark Brown
2018-09-11 18:45                           ` Steven Rostedt
2018-09-11 18:57                             ` Daniel Vetter
2018-09-11 20:15                               ` Thomas Gleixner
2018-09-12  9:03                           ` Dan Carpenter
2018-09-10 23:01                     ` Eduardo Valentin
2018-09-10 23:12                       ` Steven Rostedt
2018-09-10 23:32                         ` Eduardo Valentin
2018-09-10 23:38                           ` Guenter Roeck
2018-09-10 23:38                     ` Sasha Levin
2018-09-07  2:33           ` Steven Rostedt
2018-09-07  2:52           ` Guenter Roeck
2018-09-07 14:37             ` Laura Abbott
2018-09-07 15:06               ` Sasha Levin
2018-09-07 15:54                 ` Laura Abbott
2018-09-07 16:09                   ` Sasha Levin
2018-09-07 20:23                     ` Greg KH
2018-09-07 21:13                       ` Sasha Levin
2018-09-07 22:27                         ` Linus Torvalds
2018-09-07 22:43                           ` Guenter Roeck
2018-09-07 22:53                             ` Linus Torvalds
2018-09-07 22:57                               ` Sasha Levin
2018-09-07 23:52                                 ` Guenter Roeck
2018-09-08 16:33                                 ` Greg Kroah-Hartman
2018-09-08 18:35                                   ` Guenter Roeck
2018-09-10 13:47                                     ` Mark Brown
2018-09-09  4:36                                   ` Sasha Levin
2018-09-10 16:20                             ` Dan Rue
2018-09-07 21:32                 ` Dan Carpenter
2018-09-07 21:43                   ` Sasha Levin
2018-09-08 13:20                     ` Dan Carpenter
2018-09-10  8:23                     ` Jan Kara
2018-09-10  7:53                   ` Jan Kara
2018-09-07  3:38           ` Al Viro
2018-09-07  4:27           ` Theodore Y. Ts'o
2018-09-07  5:45             ` Stephen Rothwell
2018-09-07  9:13             ` Daniel Vetter
2018-09-07 11:32               ` Mark Brown
2018-09-07 21:06               ` Mauro Carvalho Chehab
2018-09-08  9:44                 ` Laurent Pinchart
2018-09-08 11:48                   ` Mauro Carvalho Chehab
2018-09-09 14:26                     ` Laurent Pinchart
2018-09-10 22:14                       ` Eduardo Valentin
2018-09-07 14:56             ` Sasha Levin
2018-09-07 15:07               ` Jens Axboe
2018-09-07 20:58                 ` Mauro Carvalho Chehab

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=CA+55aFzp340RDJUDoOGtN5ENgdCSSkksvG0yPt74BgyvTrAE4Q@mail.gmail.com \
    --to=torvalds@linux-foundation.org \
    --cc=Alexander.Levin@microsoft.com \
    --cc=ksummit-discuss@lists.linuxfoundation.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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).