kexec에서 SMP 구성을 시작할 때 Linux가 당황하지 않고 재부팅됩니다.

kexec에서 SMP 구성을 시작할 때 Linux가 당황하지 않고 재부팅됩니다.

저는 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 검사를 수행할 수 없기 때문에 가능성이 낮아 보입니다.

관련 정보