[Top][All Lists]

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

Re: [Libreboot-dev] git-bisect usage

From: Francis Rowe
Subject: Re: [Libreboot-dev] git-bisect usage
Date: Thu, 07 Jan 2016 19:56:38 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.8.0

Hash: SHA1

The bug was fixed in coreboot. You need to find what revision of
coreboot was used before and after that libreboot patch, then use that
knowledge to bisect coreboot itself (outside of libreboot), to know
exactly what fixed it

Op 07/01/16 om 13:01 schreef Eemeli Blåsten:
> 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:
>  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

- -- 
Minifree Ltd, trading as Ministry of Freedom | Registered in England,
No. 9361826 | VAT No. GB202190462
Registered Office: 19 Hilton Road, Canvey Island, Essex SS8 9QA, UK |
Tel: +44 (0) 1268 857 837 | Web:

Use free software. Use GNU/Linux.

Version: GnuPG v2.0.22 (GNU/Linux)


reply via email to

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