Core BSP 분석 (119) 썸네일형 리스트형 [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_.. [Kernel][Debug] "cat /d/shrinker" kernel panic #커널 크래시 디버깅 및 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_.. [Linux-Kernel][Debug]kernel panic@mmc_wait_data_done #커널 크래시 디버깅 및 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_.. 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.. 중요 사이트: 리눅스 커널 디바이스 드라이버 아래 사이트에 유익한 리눅스 커널 드라이버 샘플 코드가 있다. https://embetronicx.com/tutorials/linux/device-drivers/workqueue-in-linux-dynamic-creation/ --- 1. Arm64 Linux kernel 에서 수정 후 테스트해본 리눅스 커널 모듈 드라이버 코드입니다. Tasklet - https://gist.github.com/paranlee/84b6af08d1b4c636a06b9ba4af1b083d Workqueue - https://gist.github.com/paranlee/15f816a874818dfb247a6309a0ccc5c1 2. int generic_handle_irq(unsigned int irq) 관련 루틴 Invok.. [리눅스커널] 특정 슬럽 오브젝트 트레이싱 slub debug enable 하려면 부트 커멘드 라인 추가 요망 set bootopts slub_debug=FZPUAO,kmalloc-128 https://www.kernel.org/doc/html/v5.4/vm/slub.html> ... F.e. in order to boot just with sanity checks and red zoning one would specify: slub_debug=FZ Trying to find an issue in the dentry cache? Try: slub_debug=,dentry to only enable debugging on the dentry cache. You may use an asterisk at the end of the slab name, .. [리눅스커널] ftrace: boottime-trace(부트타임 ftrace) Overview 이번 포스트에서는 커널 v5.10에 반영된 boottime-trace를 소개합니다. 관련 문서는 아래 링크에서 확인할 수 있습니다. https://mjmwired.net/kernel/Documentation/trace/boottime-trace.rst 강의 동영상 링크는 다음과 같습니다. https://linuxfoundation.org/webinars/extra-boot-configuration-and-boot-time-tracing/ boottime-trace는 커멘드 라인을 통해 ftrace 설정을 해서 부팅 과정에서 ftrace의 주요 기능을 enable하는 기능입니다. 위 링크에서 소개된 패치는 initrd가 존재해야 효과가 있어(ex: 우분투), 배포판마다 활성화가 하기는 어렵.. [리눅스커널] LKDTM(Linux Kernel Dump Test Module) 소개 -c LKDTM 소개 LKDTM은 Linux Kernel Dump Test Module (LKDTM)의 약자로 kdump를 활용해 덤프(vmcore)가 제대로 추출되는지 테스트하는 용도로 작성된 드라이버입니다. 관련 자료는 아래 링크에서 확인할 수 있습니다. https://www.kernel.org/doc/html/latest/fault-injection/provoke-crashes.html LKDTM 소스는 커널 버전이 업그레이드되면서 (불필요하게) 복잡해 졌는데요. 전체 구조는 예전 v3.18 소스를 보면 더 빨리 파악할 수 있습니다. https://elixir.bootlin.com/linux/v3.18.130/source/drivers/misc/lkdtm.c LKDTM 컨피그를 키는 방법 LKDTM는 드.. 이전 1 2 3 4 5 6 7 8 ··· 15 다음