Panic_on_warn==0일 때 커널 패닉이 발생하는 이유는 무엇입니까?

Panic_on_warn==0일 때 커널 패닉이 발생하는 이유는 무엇입니까?

내 OS에서 커널 패닉이 발생합니다(다른 커널 덤프인 kdump를 트리거한 것 같습니다.)

[   124.674715] core: Uncorrected hardware memory error in user-access at xxxxxxx
[   124.684140] BUG: scheduling while atomic: einj_mem_uc/5151/0xxxxxxxxx
[   124.684310] {1}[Hardware Error]: Hardware error from APEI Generic Hardware Error Source: 0
r = 0xxxxxxxxxxx[   124.691839] Memory failure: 0x25eae3: Killing einj_mem_uc:6161 due to hardware memory corruption
[   124.700827] {1}[Hardware Error]: event severity: recoverable
[   124.700828] {1}[Hardware Error]:  Error 0, type: recoverable
00 paddr = xxxxx[   124.700829] {1}[Hardware Error]:  fru_text: Card01, ChnE, DIMM0
[   124.700830] {1}[Hardware Error]:   section_type: memory error
[   124.700835] {1}[Hardware Error]:   error_status: 0x0000000000000400
[   124.712309] Memory failure: 0x25eae3: recovery action for dirty LRU page: Recovered
[   124.718713] {1}[Hardware Error]:   physical_address: 0x000000015ace3400
[   124.718715] {1}[Hardware Error]:   node: 0 card: 4 module: 0 rank: 0 bank: 21 device: 0 row: 10455 column: 1408 
[   124.718716] {1}[Hardware Error]:   error_type: 4, single-symbol chipkill ECC
[   124.718718] {1}[Hardware Error]:   DIMM location: _Node0_Channel4_Dimm0 CPU0_E0 
[   124.791089] Memory failure: 0x25eae3: already hardware poisoned
3 116
400
[    0.000000] Linux version 4.18.0-348.el8.x86_64 

소스 코드를 확인했습니다.

https://elixir.bootlin.com/linux/v4.18/source/kernel/sched/core.c#L3287

Panic_on_warn == 1인 경우에만 OS가 패닉을 발생해야 하지만 내 경우는 다음과 같이 확인했습니다.

sudo sysctl -a | grep -i panic_on
...
kernel.panic_on_warn = 0

답변1

제 의견을 확인하기 위해 추가 정보를 제공해 주셔서 감사합니다.

커널은 당황하지 않습니다.버그: 원자적 스케줄링(예상대로 kernel.panic_on_warn = 0이것은 당황할 타당한 이유가 아닙니다.) 그러나 더 분명한 것은반복되는 하드웨어 메모리 오류로 인해MCE 인터럽트 핸들러에 의해 감지되었으며 이 핸들러에서 몇 가지 치명적인 문제의 원인이 될 수 있습니다.

관련 정보