libreboot-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Libreboot-dev] git-bisect usage


From: Eemeli Blåsten
Subject: Re: [Libreboot-dev] git-bisect usage
Date: Thu, 7 Jan 2016 15:01:03 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Icedove/38.4.0

Thank you Johannes,

During the past three days I kept compiling and flashing the different
versions of libreboot while git-bisecting.

The issue of "--MORE-- Unknown key 0xff detected"-spam on my macbook21
was solved in the following commit:

commit bd95009839337576c1d7ac6d022228c4ec4248a5
Author: Francis Rowe <address@hidden>
Date:   Mon Jun 15 20:15:36 2015 +0100

    Update coreboot-libre

    Rebase all patches. Remove the ones that are no longer needed.

    More CPU microcode updates were moved to coreboot's 3rdparty
    repository, so there are less blobs for libreboot to delete
    now (because the 3rdparty repository is not checked out in
    libreboot).

    Correct HDA verbs used for T400 (also R400, T500) (patch is in
    coreboot, merged).

or, in the web:

http://git.savannah.gnu.org/cgit/libreboot.git/commit/?id=bd95009839337576c1d7ac6d022228c4ec4248a5

This commit has a lot of things going on so what ended up solving the
problem is still a bit of a mystery.

Best regards,
Eemeli


On 2016-01-04 18:56, Johannes Krampf wrote:
> Hello Eemeli and Albin,
> 
> On 01/04/2016 05:50 AM, Eemeli Blåsten wrote:
>> Issue b) was experienced by Albin in the release
>> "r20150518fix-652-g48821e5". I have not tried that one and so haven't
>> experienced that issue. On my laptop issue a) was fixed somewhere
>> between the stable release 20150518 and the commit
>> 7c5fc471cfcdc48086491c87773a3667ae016873 (20151222). If someone would
>> teach me how to git bissect I'd be more than happy to try to locate the
>> fix. Note that this will take a long time since the machine has to "cool
>> down" for an hour or more for issue a) to appear.
> 
> Bisecting helps to find issues which were introduced in a commit between
> two known points. All commits before this commit will be good and all
> commits after will be bad. A binary search is done to find the commit
> introducing the problem.
> 
> That is, first the commit in the middle between the last known good and
> first known bad is tested. If it is bad, the problem was introduced
> earlier and if it is good the problem was introduced later. Then again,
> the commit in the middle between the new last good and first bad is
> tested, it is determined if the problem was introduced earlier or later
> and this is repeated until the exact commit introducing an issue is found.
> 
> Your case is the other way around: The problem was solved, not
> introduced, between two commits. Please think of any commits before the
> fix as 'good' and any commits including the fix as 'bad'.
> 
> Git has the git-bisect command to help with this (`man git-bisect`).
> Please check out the libreboot source code and execute the following to
> start bisecting: (Lines starting with '#' are comments.)
> 
> $ git bisect start
> # Mark last known good commit (In your case: With problem)
> $ git bisect good r20150518fix
> # Mark first known bad commit (In your case: Without problem)
> $ git bisect bad 7c5fc471cfcdc48086491c87773a3667ae016873
> Bisecting: 329 revisions left to test after this (roughly 8 steps)
> [d2121582c31b58280514fc0027b46584fe9bd032] docs/tasks.html: note about
> bucts on i945
> 
> Git-bisect checked out the commit in the middle between the last known
> good and the first known bad commit.
> 
> You can now build libreboot (`./build clean all` might be required),
> flash and test it. Depending on the results, you can mark the current
> commit either as bad (in your case: problem does not exist) or good (in
> your case: problem does exist) with `git bisect bad` and `git bisect bad`.
> 
> Let's assume the commit was good. Git-bisect checks out a new revision,
> you can again build, flash, test and mark as good/bad:
> 
> $ git bisect good
> Bisecting: 164 revisions left to test after this (roughly 7 steps)
> [3c42f19b2ffc8b94fb3e732181cccd51fe3dd026] docs/hcl/c201.html: Link to
> FAQ entry, describing what an EC is
> 
> I'm marking all commits as good to get to the final commit in the search:
> 
> # Not showing marking intermediate commits as good
> $ git bisect good
> Bisecting: 0 revisions left to test after this (roughly 1 step)
> [6425a49d06c20e4680e2e6a6cf18fae3dbb91ca1] download/flashrom: fix typo:
> it's git, not subversion
> $ git bisect good
> 7c5fc471cfcdc48086491c87773a3667ae016873 is the first bad commit
> commit 7c5fc471cfcdc48086491c87773a3667ae016873
> Author: Francis Rowe <address@hidden>
> Date:   Tue Dec 22 15:42:38 2015 +0000
> 
>     docs/src/*/c201*: it's packages, not package (fix typo)
> 
> :040000 040000 903ef9ceb861afbe697dfa77a5f0a33537dd8cc4
> 992b4384dac349ccafd06243e99a222e58303b51 M    docs
> 
> At this stage you can also use "git bisect visualize" to show the commit
> introducing the bug (or in your case, fixing the bug) and "git bisect
> log" to see which commits you investigated:
> 
> $ git bisect log
> git bisect start
> # bad: [7c5fc471cfcdc48086491c87773a3667ae016873] docs/src/*/c201*: it's
> packages, not package (fix typo)
> git bisect bad 7c5fc471cfcdc48086491c87773a3667ae016873
> # good: [c5c01913227ae23105a198aa06bfb3f12f9cf892] Libreboot r20150518
> (fix mistake in flashrom patch)
> git bisect good c5c01913227ae23105a198aa06bfb3f12f9cf892
> # good: [d2121582c31b58280514fc0027b46584fe9bd032] docs/tasks.html: note
> about bucts on i945
> git bisect good d2121582c31b58280514fc0027b46584fe9bd032
> # good: [3c42f19b2ffc8b94fb3e732181cccd51fe3dd026] docs/hcl/c201.html:
> Link to FAQ entry, describing what an EC is
> git bisect good 3c42f19b2ffc8b94fb3e732181cccd51fe3dd026
> # good: [ec162e45ee82503306b66c5e19cd9946ded5668f] grub-assemble: remove
> redundant line break on EOF
> git bisect good ec162e45ee82503306b66c5e19cd9946ded5668f
> # good: [2e7fde09174aed5f3cc7d714dbe32e451873f3c9] update GRUB
> git bisect good 2e7fde09174aed5f3cc7d714dbe32e451873f3c9
> # good: [1d699df7c4bbd55117a9c769988eb9313165601a] update .gitignore
> git bisect good 1d699df7c4bbd55117a9c769988eb9313165601a
> # good: [34e0269745c16a8a70438dfb5a32931907e33161] remove seabios (this
> time permanently)
> git bisect good 34e0269745c16a8a70438dfb5a32931907e33161
> # good: [910b212e90c6f9c57025e1c7b0c08897af787496]
> docs/hcl/kgpe-d16.texi: note about microcode for 6300/6200 opterons
> git bisect good 910b212e90c6f9c57025e1c7b0c08897af787496
> # good: [dd34b4e7b6ff216ddac56941383290dc1da99ba8] tell user not to buy
> ASUS Chromebook C201
> git bisect good dd34b4e7b6ff216ddac56941383290dc1da99ba8
> # good: [6425a49d06c20e4680e2e6a6cf18fae3dbb91ca1] download/flashrom:
> fix typo: it's git, not subversion
> git bisect good 6425a49d06c20e4680e2e6a6cf18fae3dbb91ca1
> # first bad commit: [7c5fc471cfcdc48086491c87773a3667ae016873]
> docs/src/*/c201*: it's packages, not package (fix typo)
> 
> I hope this helps with using git bisect.
> 
> - Johannes



reply via email to

[Prev in Thread] Current Thread [Next in Thread]