WORKQUEUE

포스트: 35
Tags

Posts

35 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)

워크큐(Workqueue) - struct work_struct->data

Guillermo Austin Kim|2017년 12월 24일

workqueue를 디버깅할 때 여러 변수를 점검해야 하거든요.그 중에 하나가 struct work_struct->data 변수이거든요 일단 데이터 구조체는 아주 명령어로 볼 수 있죠.crash64> struct -o work_structstruct work_struct { [0] atomic_long_t data; [8] struct list_head entry; [24] work_func_t func;} 이번 기회에 struct work_struct->data 값들을 정리하려고 하는데요.결과는 아래와 같아요. 가끔 디버깅 할 때 아래 매크로 값들을 찾다가 짜증날 때가 가끔 있거든요.workque macro Hexa ValueWORK_STRUCT_COLOR_BITS 0x4

[Linux][Kernel] ftrace - Workqueue 워크큐 로그 분석 - 1

Guillermo Austin Kim|2017년 12월 13일

리눅스 커널의 매우 중요한 Subsystem인 워크큐. 이번에는 잠깐 ftrace 로그에서 workqueue에 대해 분석을 해보려고 해요.ftrace 세팅은 Appendix [1]을 참고하시구요. 아래 로그는 보자마자 느낄 수 있는 건 irq/225-touch-279란 irq_thread에서 워크 큐를 큐잉하고 이 후 워크큐가 실행된다는 걸 알 수 있죠. irq/225-touch-279 [006] 53516.537609: workqueue_queue_work: work struct=0xed845d58 function=touch_update_work workqueue=0xed80cc00 req_cpu=8 cpu=6 //<<--[1] irq/225-touch-279 [006] 53