Re: [BUG][BISECTED] Freeze at loading init ramdisk

From: Mirsad Todorovac
Date: Thu Jan 18 2024 - 16:44:53 EST




On 1/18/24 22:14, Uwe Kleine-König wrote:
On Thu, Jan 18, 2024 at 09:04:05PM +0100, Mirsad Todorovac wrote:


On 1/18/24 08:45, Uwe Kleine-König wrote:
Hello Mirsad,

On Wed, Jan 17, 2024 at 07:47:49PM +0100, Mirsad Todorovac wrote:
On 1/16/24 01:32, Mirsad Todorovac wrote:
On the Ubuntu 22.04 LTS Jammy platform, on a mainline vanilla torvalds tree kernel, the boot
freezes upon first two lines and before any systemd messages.

(Please find the config attached.)

Bisecting the bug led to this result:

marvin@defiant:~/linux/kernel/linux_torvalds$ git bisect good
d97a78423c33f68ca6543de510a409167baed6f5 is the first bad commit
commit d97a78423c33f68ca6543de510a409167baed6f5
Merge: 61da593f4458 689237ab37c5
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date:   Fri Jan 12 14:38:08 2024 -0800

[...]

Hope this helps.

P.S.

As I see that this is a larger merge commit, with 5K+ lines changed, I don't think I can
bisect further to determine the culprit.

Actually it's not that hard. If a merge commit is the first bad commit
for a bisection, either the merge wasn't done correctly (less likely,
looking at d97a78423c33f68ca6543de510a409167baed6f5 I'd bet this isn't
the problem); or changes on different sides conflict or you did
something wrong during bisection.

To rule out the third option, you can just retest d97a78423c33,
61da593f4458 and 689237ab37c5. If d97a78423c33 is the only bad one, you
did it right.

This was confirmed.

Then to further debug the second option you can find out the offending
commit on each side with a bisection as follows, here for the RHS (i.e.
689237ab37c5):

git bisect start 689237ab37c5 $(git merge-base 61da593f4458 689237ab37c5)

and then in each bisection step do:

git merge --no-commit 61da593f4458
test if the problem is present
git reset --hard
git bisect good/bad

In this case you get merge conflicts in drivers/video/fbdev/amba-clcd.c
and drivers/video/fbdev/vermilion/vermilion.c. In the assumption that
you don't have these enabled in your .config, you can just ignore these.

Side note: A problem during bisection can be that the .config changes
along the process. You should put your config into (say)
arch/x86/configs/lala_defconfig and do

make lala_defconfig

before building each step to prevent this.

I must have done something wrong:

marvin@defiant:~/linux/kernel/linux_torvalds$ git bisect log
# bad: [689237ab37c59b9909bc9371d7fece3081683fba] fbdev/intelfb: Remove driver
# good: [de927f6c0b07d9e698416c5b287c521b07694cac] Merge tag 's390-6.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
git bisect start '689237ab37c5' 'de927f6c0b07d9e698416c5b287c521b07694cac'
# good: [d9f25b59ed85ae45801cf45fe17eb269b0ef3038] fbdev: Remove support for Carillo Ranch driver
git bisect good d9f25b59ed85ae45801cf45fe17eb269b0ef3038
# good: [e2e0b838a1849f92612a8305c09aaf31bf824350] video/sticore: Remove info field from STI struct
git bisect good e2e0b838a1849f92612a8305c09aaf31bf824350
# good: [778e73d2411abc8f3a2d60dbf038acaec218792e] drm/hyperv: Remove firmware framebuffers with aperture helper
git bisect good 778e73d2411abc8f3a2d60dbf038acaec218792e
# good: [df67699c9cb0ceb70f6cc60630ca938c06773eda] firmware/sysfb: Clear screen_info state after consuming it
git bisect good df67699c9cb0ceb70f6cc60630ca938c06773eda
marvin@defiant:~/linux/kernel/linux_torvalds$

with the error:

marvin@defiant:~/linux/kernel/linux_torvalds$ git bisect good
Bisecting: 0 revisions left to test after this (roughly 0 steps)
drivers/video/fbdev/amba-clcd.c: needs merge
drivers/video/fbdev/vermilion/vermilion.c: needs merge
error: you need to resolve your current index first

It seems you forgot the "git reset --hard" step. Doing it in this state
should still be possible.

Well, it was possible, but I obviously got the wrong result:

marvin@defiant:~/linux/kernel/linux_torvalds$ git bisect log
# bad: [689237ab37c59b9909bc9371d7fece3081683fba] fbdev/intelfb: Remove driver
# good: [de927f6c0b07d9e698416c5b287c521b07694cac] Merge tag 's390-6.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
git bisect start '689237ab37c5' 'de927f6c0b07d9e698416c5b287c521b07694cac'
# good: [d9f25b59ed85ae45801cf45fe17eb269b0ef3038] fbdev: Remove support for Carillo Ranch driver
git bisect good d9f25b59ed85ae45801cf45fe17eb269b0ef3038
# good: [e2e0b838a1849f92612a8305c09aaf31bf824350] video/sticore: Remove info field from STI struct
git bisect good e2e0b838a1849f92612a8305c09aaf31bf824350
# good: [778e73d2411abc8f3a2d60dbf038acaec218792e] drm/hyperv: Remove firmware framebuffers with aperture helper
git bisect good 778e73d2411abc8f3a2d60dbf038acaec218792e
# good: [df67699c9cb0ceb70f6cc60630ca938c06773eda] firmware/sysfb: Clear screen_info state after consuming it
git bisect good df67699c9cb0ceb70f6cc60630ca938c06773eda
# good: [df67699c9cb0ceb70f6cc60630ca938c06773eda] firmware/sysfb: Clear screen_info state after consuming it
git bisect good df67699c9cb0ceb70f6cc60630ca938c06773eda
# good: [c25a19afb81cfd73dab494ba64f9a434cf1a4499] fbdev/hyperv_fb: Do not clear global screen_info
git bisect good c25a19afb81cfd73dab494ba64f9a434cf1a4499
# first bad commit: [689237ab37c59b9909bc9371d7fece3081683fba] fbdev/intelfb: Remove driver
marvin@defiant:~/linux/kernel/linux_torvalds$ uname -rms
Linux 6.7.0-initrd-retest-02751-g689237ab37c5 x86_64
marvin@defiant:~/linux/kernel/linux_torvalds$

.. meaning, I get the 689237ab37c5 as "first bad commit" but it boots.

If you see an obvious error, it would be helpful, otherwise I might retry the bisect, but later.

I am puzzled, but bisecting a merge commit is my first attempt at this.

Best regards,
Mirsad