KERNEL
Posts
183 posts[0410] Slab Memory Corruption Case Study#2 - 디버깅
난이도: 하 이제 커널 로그부터 볼게요. 이전과 비슷한 패턴인데 약간 다른 것 같네요.1 [ 2551.510956 / 04-07 15:43:12.844][3] =============================================================================2 [ 2551.510994 / 04-07 15:43:12.844][3] BUG kmalloc-256 (Tainted: G W ): Invalid object pointer 0xe216ce103 [ 2551.511015 / 04-07 15:43:12.844][3] -----------------------------------------------------------------------
[Kernel][Crash] 워크큐(workqueue) 락업(3) at [0321]
[Kernel][Crash] 워크큐(workqueue) 락업(1) at [0321] [Kernel][Crash] 워크큐(workqueue) 락업(2) at [0321] 코어 덤프에서 계속... worker_pool_idr 전역 변수에 접근하면 (*(worker_pool_idr.top)).ary 각 CPU별 워커풀 인스턴스가 있다고 했죠. (static struct idr) worker_pool_idr = ( (struct idr_layer *) hint = 0xFFFFFFC6307B9308, (struct idr_layer *) top = 0xFFFFFFC6307B9308 -> ( (int) prefix = 0x0, (int) layer = 0x0, (stru
[Kernel][Crash] 워크큐(workqueue) 락업(2) at [0321]
[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)
[Linux][Kernel] 매크로 ##uname 파라미터 전달 기법
여러분 리눅스 커널 코드를 자주 보시나요? 그런데 커널 소스를 보다가 막힐 때가 종종 있지 않나요? 함수를 따라 가다 보면 존재하지 않는 함수를 호출해서 길을 잃기도 합니다. 그리고 매크로가 너무 많아서 분석 시간이 너무 오래 걸리는 경우도 있습니다. 이번 장에서는 리눅스 커널 코드를 읽다가 만나는 매크로를 모두 풀어보겠습니다. 이 매크로만 풀어도 리눅스 커널 소스 코드를 아주 효율적으로 읽을 수 있어요. 자 그럼 한 가지 예를 들게요. 아래 코드를 보면 PageReclaim와 ClearPageReclaim 함수가 보입니다.[mm/filemap.c]void end_page_writeback(struct page *page){ if (PageReclaim(page)) { ClearPageReclaim
![[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)

