락업

포스트: 7
Tags

Posts

7 posts

[Kernel][Crash] 워크큐(workqueue) 락업(2) at [0321]

Guillermo Austin Kim|2018년 4월 16일

[Kernel][Crash] 워크큐(workqueue) 락업(1) at [0321] http://rousalome.egloos.com/9974388코어 덤프에서 계속... 자 여기까지 커널 크래시가 발행한 원인까지 확인했습니다.그럼 CPU2에 워커풀에서 등록된 워커쓰레드를 살펴봐야 겠습니다. 워커쓰레드들은 워커 풀에 등록할 때 struct worker_pool.workers 멤버 링크드 리스트로 등록합니다.1 (struct worker_pool *) (struct worker_pool*)0xFFFFFFC63A339000 = 0xFFFFFFC63A339000 -> (2 (spinlock_t) lock = ((struct raw_spinlock) rlock = ((arch_spinlock_t)

[Kernel][crash]뮤텍스 데드락(Mutex Deadlock) 락업(lockup) - "simpleperf" 디버깅

Guillermo Austin Kim|2017년 12월 27일

특정 시점부터 갑자기 디바이스가 락업되는 현상이 리포트가 되었거든요. 엄청 락업된 디바이스가 쏟아 졌었는데요. 이번 시간에는 그 때 어떻게 디버깅을 해서 문제를 해결했는지 업데이트하고자 해요. 락업이 된 상태에서 디바이스를 받아 강제로 코어 덤프를 뜬 다음에 콜 트레이스를 봤는데요. 아래 콜 스택이 확인되었어요. 프로세스 이름은 "atd" 이에요. reboot 시스템콜을 trigger한 다음에 각 종 시스템 드라이버를 종료하는 과정에서 mutex lock을 계속 기다리는 현상이 확인되네요. -000|context_switch(inline) -000|__schedule() -001|schedule_preempt_disabled() -002|spin_lock(inline) -002|

[Linux][Kernel]뮤텍스 데드락(Mutex Deadlock) 락업(lockup) - "simpleperf" 디버깅

Guillermo Austin Kim|2017년 12월 27일

특정 시점부터 갑자기 디바이스가 락업되는 현상이 리포트가 되었거든요. 엄청 쏟아 졌었는데요.이 때 어떻게 디버깅을 해서 문제를 해결했는지 업데이트하고자 해요. 락업이 된 상태에서 디바이스를 받아 강제로 코어 덤프를 뜬 다음에 콜 트레이스를 봤는데요.아래 콜 스택이 확인되었어요. 프로세스 이름은 "atd" 이에요. reboot 시스템콜을 trigger한 다음에 각 종 시스템 드라이버를 종료하는 과정에서 mutex lock을 계속 기다리는 현상이 확인되네요.-000|context_switch(inline)-000|__schedule()-001|schedule_preempt_disabled()-002|spin_lock(inline)-002|__mutex_lock_common(inline)-002|__mute