watchdog reset - race in ipv6_ifa_notify() - 리눅스 커널

Guillermo Austin Kim|2018년 1월 8일
Posts

watchdog reset - race in ipv6_ifa_notify() - 리눅스 커널

Guillermo Austin Kim|2018년 1월 8일

예전 MTK SoC에서 일어났던 Watchdog Reset 이슈인데요. 디버깅 정보를 조금 공유하고자 해요. CPU1에서 수행 중인 "migration/1" process에서 watchdog reset이 발생하여 시스템이 리셋된 흔적을 확인할 수 있어요.-000|do_undefinstr()-001|__und_svc_fault(asm) -->|exception-002|aee_wdt_atf_info()-003|aee_wdt_atf_entry()-004|debug_smp_processor_id()-005|cpu_stopper_thread()-006|smpboot_thread_fn()-007|kthread()-008|ret_from_fork(asm)-009|ret_fast_syscall(asm) MTK S

Related Posts

3 posts

[Crash-Utility] 램덤프 로딩 시 파라미터(CONFIG_PROC_KCORE)

Guillermo Austin Kim|2022년 1월 5일

크래시 유틸리티를 실행해 램덤프를 로딩하려면 적절한 아규먼트를 지정해야 합니다. 예를 들면 다음과 같습니다. ./crash64 ramdump.bin@0x800000000 -p 4096 -m kimage_voffset=0xFFFFFFBF58000000 -m page_offset=0xFFFFFF8000000000 -m vabits_actual=39 -m phys_base=0x40000000 --no_panic --smp vmlinux kimage_voffset, page_offset, phys_base과 같은 파라미터를 제대로 설정해야 크래시 유틸리티가 실행됩니다. 그런데 kimage_voffset, page_offset 옵션을 어떻게 적용해면 될지 모를 때가 있습니다. 이럴 때는 이번 포스트에서 소개한

[TRACE32] 메모리 덤프에서 검색(서치)하는 명령어: data.find

Guillermo Austin Kim|2020년 12월 5일

TRACE32를 사용하다 보면 메모리 덤프에서 특정 데이터를 검색하고 싶은 경우가 있습니다.이 때는 data.find 명령어를 사용하면 됩니다. 다음은 TRACE32에서 릴리즈한 data.find 관련 스팩 문서(general_ref_d.pdf)의 내용입니다. Format: Data.Find [ [% ] | [/ ]] : Byte | Word | Long | Quad | TByte | HByte | Float . | BE | LE : Back | NoFind ; search for byte 0x3f

[리눅스커널] TRACE32: 'v.type' 명령어로 구조체와 enum 필드를 바로 확인하기

Guillermo Austin Kim|2020년 5월 20일

소스 코드를 분석 하다보면 구조체와 enum의 정체를 알고 싶을 때가 있습니다.이 때 TRACE32를 활용하면 바로 이 정보를 확인할 수 있습니다. 구조체 확인하기 먼저 구조체의 세부 필드는 다음과 같은 명령어를 입력하면 확인할 수 있습니다. $ v.type % %m %l %hi %sp struct '구조체 이름' 자, 그럼 리눅스 커널에서 프로세스 정보를 나타내는 struct task_struct 구조체의 정체를 확인해봅시다. $ v.type % %m %l %hi %sp struct task_struct(struct task_struct) struct task_struct struct (4096 bytes, [0] struct thread_info thread_inf