Re: Crash on boot with CONFIG_JUMP_LABEL in 6.10

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

 



On 2024-07-30 09:50, John David Anglin wrote:
On 2024-07-30 9:41 a.m., John David Anglin wrote:
On 2024-07-29 7:11 p.m., matoro wrote:
Hi all, just bumped to the newest mainline starting with 6.10.2 and immediately ran into a crash on boot. Fully reproducible, reverting back to last known good (6.9.8) resolves the issue.  Any clue what's going on here? I can provide full boot logs, start bisecting, etc if needed...
6.10.2 built and booted okay on my c8000 with the attached config. You could start with it and incrementally add features to try to identify the one that causes boot failure.
Oh, I have an experimental clocksource patch installed.  You will need to regenerate config with "make oldconfig" to use the current timer code.  Probably, this would happen automatically.

Your config would be needed to duplicate.    Full boot log would also help.

Dave

Hi Dave, bisecting quickly revealed the cause here.

91a1d97ef482c1e4c9d4c1c656a53b0f6b16d0ed is the first bad commit
commit 91a1d97ef482c1e4c9d4c1c656a53b0f6b16d0ed
Author: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Date:   Wed Mar 13 19:01:03 2024 +0100

    jump_label,module: Don't alloc static_key_mod for __ro_after_init keys

    When a static_key is marked ro_after_init, its state will never change
    (after init), therefore jump_label_update() will never need to iterate
    the entries, and thus module load won't actually need to track this --
    avoiding the static_key::next write.

    Therefore, mark these keys such that jump_label_add_module() might
    recognise them and avoid the modification.

    Use the special state: 'static_key_linked(key) && !static_key_mod(key)'
    to denote such keys.

    jump_label_add_module() does not exist under CONFIG_JUMP_LABEL=n, so the
    newly-introduced jump_label_init_ro() can be defined as a nop for that
    configuration.

    [ mingo: Renamed jump_label_ro() to jump_label_init_ro() ]

    Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
    Signed-off-by: Valentin Schneider <vschneid@xxxxxxxxxx>
    Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
    Acked-by: Josh Poimboeuf <jpoimboe@xxxxxxxxxx>
Link: https://lore.kernel.org/r/20240313180106.2917308-2-vschneid@xxxxxxxxxx

 include/asm-generic/sections.h |  5 ++++
 include/linux/jump_label.h     |  3 +++
 init/main.c                    |  1 +
kernel/jump_label.c | 53 ++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 62 insertions(+)

This only manifests with CONFIG_JUMP_LABEL=y, which I have set and you do not. Flipping this off allows 6.10 to boot normally. Copying in the author here as well.




[Index of Archives]     [Linux SoC]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux