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.