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