KERNEL
Posts
183 posts[리눅스커널][Trace32] wakelock 디버깅 - container_of
[crash-utility] wakelock 디버깅(rbtree: wakelocks_tree)[crash-utility]wakelock - rbtree debugging(디버깅) [리눅스커널][Trace32] wakelock 디버깅 - container_of[Kernel] wakelock debug patch 이번 시간에는 wakeup_sources이란 링크드 리스트를 통해 wakelock 디버깅을 합시다.이전에는 crash-utility를 썻는데 이번에는 Trace32를 쓰겠습니다. 개발자는 다양한 툴을 써야 한 가지 툴에 종속된 노예 개발자가 되는 것을 피할 수 있습니다.또한 각 툴의 장점을 잘 활용할 수도 있습니다. 먼저, 다음 T32 명령어를 입력해서 offsetof와 container_of
[리눅스] printk 아규먼트 포멧
printk에 %로 어떤 형식을 지정할 지 헷갈릴 때가 많습니다.이럴 때는 다음 형식을 참고하면 됩니다.If variable is of Type, use printk format specifier:------------------------------------------------------------ int %d or %x unsigned int %u or %x long %ld or %lx unsigned long %lu or %lx long long %lld or %llx unsigned long long %llu or %llx size_t %zu or %zx ssize_t %zd or %zx s32 %d or %x u32 %u or %x s64 %lld or
[라즈베리파이][리눅스커널] in_interrupt() 함수란
in_interrupt() 함수란리눅스 커널이 실행할 때 수많은 함수가 각자 서로를 호출합니다. 어떤 함수는 프로세스 컨택스트에서 실행(커널 쓰레드)되는데 대부분 함수는 인터럽트 컨택스트, 즉 인터럽트 처리하는 도중 호출될 수 있습니다. 만약 현재 실행하는 코드가 인터럽트를 처리 중이면 더 빨리 처리해야겠죠? 인터럽트 서비스 루틴은 실행 중인 프로세스를 멈추고 동작하므로 인터럽트 컨택스트 조건에서만 신속하게 코드를 실행시키고 싶을 때가 있습니다. 그럼 현재 실행 중인 코드가 인터럽트 컨택스트 구간인지 어떻게 알 수 있을까요? in_interrupt()란 함수가 이 정보를 알려줍니다. 그럼 다음 패치를 함께 살펴 봅시다. diff --git a/drivers/md/dm-region-hash.c b/dr
[라즈베리파이][리눅스커널]IRQ Thread(threaded IRQ) 란 #CS
From [라즈베리파이]인터럽트 후반부 처리(Bottom Half) 소개 #CS http://rousalome.egloos.com/9977984 리눅스 커널을 익히는 과정에서 만나는 걸림돌 중 하나가 어려운 용어입니다. 어려운 개념을 낯선 용어로 설명하니 이해하기 어렵죠. IRQ Thread의 의미를 알기 전에 IRQ란 용어부터 알아볼까요? IRQ는 Interrupt Request의 약자로 하드웨어에서 발생한 인터럽트를 처리 한다는 의미입니다. 조금 더 구체적으로 인터럽트 발생 후 인터럽트 핸들러까지 처리하는 흐름입니다. IRQ Thread란 뭘까요? 인터럽트 핸들러에서는 처리하면 오래 걸리는 일을 수행하는 프로세스입니다. 인터럽트 후반부 처리를 위한 인터럽트 처리 전용 프로세스입니다. 리눅스 커널



![[1년 전 오늘] 250608 인천 무의도 덕점방파제 바다루어낚시 - 장대, 광어](https://img.zoomtrend.com/2026/06/10/1781084366-20250608122254.jpg)
![[CV] [Comi] '終末のハーレム ファンタジア' (종말의 하렘 판타지아) 17권. 그동안 SAVAN에 무슨 일이 있었던 거냐](https://img.zoomtrend.com/2026/06/10/1781084386-ECA484EBA6ACEC9790.jpg)