본문 바로가기

Kernel Crash Case-Studies/커널 크래시 트러블슈팅

(4)
[syzbot] Tons of crash issue with vmlinux and kernel log ([riscv] kernel panic) [syzbot] Tons of crash issue with vmlinux and kernel log ([riscv] kernel panic) Some of my friends asked me about how to find kernel crash signatures with kernel log. Because they would like to improve troubleshooting ability as Linux system software engineer. If you are eager to know about the pattern of __kernel crash__ signature, you can visit the following links:   1) syzbot weblink: The fol..
BUG(): CONFIG_PANIC_ON_OOPS, CONFIG_PANIC_ON_OOPS_VALUE! Sometime I noticed that system does not crash when the call to BUG() is made in the kernel driver. I just observed the stack trace from the kernel log and then find that target is running rather than entering crash mode. To make the target crash when BUG() is called, the following config should be present; CONFIG_PANIC_ON_OOPS=y CONFIG_PANIC_ON_OOPS_VALUE=1 Let's look at kernel die() function wh..
[Kernel] memory leak - debug(CONFIG_DEBUG_KMEMLEAK) 가끔 가다가 커널 메모리 누수(memory leak) 이슈가 생길 때가 있어요. OOM Killer가 메모리가 부족하다고 커널이 메시지를 남기며 스스로 자살을 하거나, Low Memory Killer가 너무나도 자주 돌아서 락업 현상으로 검출되죠. 이런 이슈가 나왔을 때 어떻게 디버깅을 하면 좋을까요? 한번 정리 좀 해볼께요. 1. 디버그 정보: contig_page_data.node_zones[0--1].free_area 우선 중 High/Low 메모리 Zone 중 어떤 Zone에서 페이지가 부족한 지 점검할 필요가 있어요. 만약에 Low 메모리 존에서 메모리가 부족하면 커널 동작으로 포커스를 맞추어야 하구요, 아래 경우와 같이 High Memory Zone에 Order 별로 free 페이지가 거의 없..
[Linux][Kernel][Stability] Kernel panic @0x0 from xfrm_local_error+0x4c #커널 크래시 디버깅 및 TroubleShooting Race로 mmc_wait_data_done() 함수에서 커널 패닉 "cat /d/shrinker" 입력 시 커널 패닉 함수 포인터 미지정으로 xfrm_local_error() 커널 패닉 preempt 조건으로 ___might_sleep() 함수 크래시 스택 카나리: __stack_chk_fail() 함수 크래시 스택 카나리: tcp_v4_rcv -> __stack_chk_fail 크래시 뮤텍스 데드락(Mutex Deadlock)으로 락업(lockup) 디바이스 드라이버 Signature 문제로 커널 크래시 메모리 불량 커널 크래시 @find_vma_links() 메모리 불량 커널 크래시 @ttwu_do_activate() Race로 ipv6_ifa_..