私はkexecに関連するプロジェクトを進めています。一部のハードウェアプラットフォームで実行するようにしました。あるプラットフォームでは、SMPセットアップ中にパニックダンプなしで突然再起動が発生しました。
[ 25.219028] smpboot: CPU0: AMD EPYC 7402 24-Core Processor (family: 0x17, model: 0x31, stepping: 0x0)
[ 25.228083] Performance Events: Fam17h+ core perfctr, AMD PMU driver.
[ 25.237997] ... version: 0
[ 25.247996] ... bit width: 48
[ 25.257996] ... generic registers: 6
[ 25.267996] ... value mask: 0000ffffffffffff
[ 25.277996] ... max period: 00007fffffffffff
[ 25.287996] ... fixed-purpose events: 0
[ 25.297996] ... event mask: 000000000000003f
[ 25.308059] rcu: Hierarchical SRCU implementation.
[ 25.318046] NMI watchdog: Enabled. Permanently consumes one hw-PMU counter.
[ 25.328283] smp: Bringing up secondary CPUs ...
[ 25.335543] x86: Booting SMP configuration:
��
<fans suddenly get loud, indicating a reboot>
プラットフォームは、一般的な(例:kexecではない)状況で正常に起動します。ベースカーネルとkexecカーネルは同じコードベースで構築されていますが、異なる方法でリンクされています。 Intelプラットフォームでテストしたので、これは問題とは関係がないようです。
Kexecコマンドライン:
[ 0.000000] Command line: elfcorehdr=0x86000000 ro panic=5 console=ttyS0,9600 loglevel=8 numifbs=0 nf_conntrack.acct=1 nmi_watchdog=1 profile=0 root=/dev/ram0 initrd=/crashfs.gz libata.force=disable
BIOS - あるブートにはBIOSがあり、別のブートにはBIOSがないため、関連がある可能性があります。
Version 2.20.1275. Copyright (C) 2022 American Megatrends, Inc.
BIOS V1.05(08/26/2022)
私はそれを追跡wakeup_secondary_cpu_via_init
しましたarch/x86/kernel/smpboot.c
。私が得た最後の出力は最初の出力の直前ですapic_icr_write
。
デバッグをどこで開始するのかわかりません。何らかの理由で利用可能な唯一のコアがハングしたため、NMIウォッチドッグが強制的に再起動される可能性はありますか?中断されたコアはNMIチェックを実行できないため、可能性が低いようです。