git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Linus Torvalds <torvalds@linux-foundation.org>
To: Andrew Lutomirski <luto@mit.edu>
Cc: Christian Couder <christian.couder@gmail.com>,
	linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
	git@vger.kernel.org, Shuang He <shuang.he@intel.com>
Subject: Re: AAARGH bisection is hard (Re: [2.6.39 regression] X locks up hard right after logging in)
Date: Fri, 13 May 2011 09:11:31 -0700	[thread overview]
Message-ID: <BANLkTimE2GkkhcFZtNrYZASWp0LDhUx=GQ@mail.gmail.com> (raw)
In-Reply-To: <BANLkTi=NdVUUZ=_bACzyeMGS3JWs0EMbWA@mail.gmail.com>

On Fri, May 13, 2011 at 7:56 AM, Andrew Lutomirski <luto@mit.edu> wrote:
>
> So what I really want is a fancy version of git bisect that makes no
> assumptions about the relationship of good and bad commits in the
> graph and just finds me a commit that is bad but for which all parents
> are good or vice versa.

Ehh. That's the "non-fancy" way of testing, I'm afraid: if you cannot
make assumption about the relationship between good and bad commits,
then you have to test _every_ commit.

So yes, bisection has its problems. But they really do come from the
fact that it's very efficient. When you have (on average) about ten
thousand commits between releases, you have to make assumptions about
the relationships. But once you do that, the efficiency also results
in a certain fragility.

Think of it as a compression method: it generates the smallest
possible set of test points for you. But it's a "lossy" compression -
you don't test everything. And it's extreme: it boils down 10k commit
events to about 13 bisection events. If anything goes wrong (like the
bug not being entirely repeatable, or the bug comes and goes), it will
give the wrong answer.

The good news is that _usually_ it works really well. And when the
choice is between "works really well for 10k commits but can have
problems" and "you need to test all 10k commits", the "can have
problems" part turns out to be a pretty small downside ;)

                                Linus

  reply	other threads:[~2011-05-13 16:12 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-12 17:15 AAARGH bisection is hard (Re: [2.6.39 regression] X locks up hard right after logging in) Andrew Lutomirski
2011-05-12 17:37 ` Linus Torvalds
2011-05-12 18:54   ` Johannes Sixt
2011-05-12 19:17     ` Linus Torvalds
2011-05-13 13:39   ` Andrew Lutomirski
2011-05-13  8:20 ` Christian Couder
2011-05-13 13:38   ` Andrew Lutomirski
2011-05-13 14:56     ` Andrew Lutomirski
2011-05-13 16:11       ` Linus Torvalds [this message]
2011-05-13 16:13         ` Andrew Lutomirski
2011-05-13 17:24         ` Andrew Lutomirski
2011-05-13 17:54           ` Linus Torvalds
2011-05-13 18:34             ` Johannes Sixt
2011-05-13 18:41               ` Linus Torvalds
2011-05-13 18:47                 ` Johannes Sixt
2011-05-13 18:48                 ` Junio C Hamano
2011-05-13 18:55                   ` Andrew Lutomirski
2011-05-13 19:18                   ` Linus Torvalds

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='BANLkTimE2GkkhcFZtNrYZASWp0LDhUx=GQ@mail.gmail.com' \
    --to=torvalds@linux-foundation.org \
    --cc=christian.couder@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@mit.edu \
    --cc=netdev@vger.kernel.org \
    --cc=shuang.he@intel.com \
    /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 NNTP newsgroup(s).