Re: More detailed text about bisecting Linux kernel regression -- request for comments and help

From: Jani Nikula
Date: Thu Jan 25 2024 - 04:37:09 EST


On Wed, 24 Jan 2024, Thorsten Leemhuis <linux@xxxxxxxxxxxxx> wrote:
> Hi! Find below a WIP text on bisecting Linux kernel regressions I plan
> to submit for inclusion in the Linux kernel documentation in a month or
> two. I could do so now, but chose to write this mail instead, as the
> text would really benefit from a few people actually testing the given
> instructions. Hence if you notice somebody that faces a regression that
> needs bisecting, consider poiting them them to this text, asking them to
> play through this and provide feedback to me.
>
> Ideally point users to the following rendered version:
> https://www.leemhuis.info/files/misc/How%20to%20bisect%20a%20Linux%20kernel%20regression%20%e2%80%94%20The%20Linux%20Kernel%20documentation.html
>
>
> It is (a) a lot easier to read (b) has no odd or broken line breaks,
> like the text below has a few (sorry!) (c) is updated when I improve
> something.
>
> Anyone who might be willing to provide feedback can do so in a reply
> here

Hi Thorsten, first of all, thanks for doing this. I think it'll be good
to have a document on kernel bisection to point people at.

The one thing I find problematic is the use of shallow clones by default
and, well, the use of git in ways that I myself can't figure out without
resorting to the man pages. I think it's a lot of dark corners of git
that's overwhelming and really unrelated to the bisection itself.

If I point people at that, and they have problems, I'm just going to
tell them to:

git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
cd linux
git remote add stable git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
git fetch stable

And I can tell them to 'git checkout v<GOOD>' and 'git checkout v<BAD>'
and proceed from there.

To me, that's the TL;DR. And then you can have a section on "what if I
really can't do full clones" and various options to save bandwidth.

> Downloading the sources using a full git clone
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> If downloading and storing a lot of data (~4,4 Gigabyte as of early
> 2023) is nothing that bothers you, instead of a shallow clone perform a
> full git clone instead. You then will avoid the specialties mentioned
> above and will have all versions and individual commits at hand at any
> time::
>
> curl -L \
>
> https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/clone.bundle
> \
> -o linux-stable.git.bundle
> git clone linux-stable.git.bundle ~/linux/
> rm linux-stable.git.bundle
> cd ~/linux/
> git remote set-url origin \
> https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
> git fetch origin
> git checkout --detach origin/master

I mean seriously, even the full clone instructions use curl, without
rationale. Why?


BR,
Jani.


--
Jani Nikula, Intel