LINUX
Posts
487 posts[Linux][Kernel] ftrace - Workqueue 워크큐 로그 분석 - 1
리눅스 커널의 매우 중요한 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
[Linux][Kernel] ftrace - early logging at boot time
리눅스 커널 디버깅 기능의 핵심 ftrace에 대해서 여러 번 소개했는데요.한 가지 재미있는 패치를 소개하려고 해요. ftrace 로깅을 하기 위해서는 아래와 같은 방식으로 시스 노드에 있는 파라미터를 설정해야 해요."echo 0 > /d/tracing/events/enable""echo 1 > /d/tracing/events/sched/sched_switch/enable""echo 1 > /d/tracing/events/power/wakeup_source_activate/enable""echo 1 > /d/tracing/events/power/wakeup_source_deactivate/enable" "echo 1 > /d/tracing/events/irq/irq_handle
[Linux][Kernel] 슬랩 Slab Memory 디버깅(Debugging) - 1
슬랩 디버그 컨피그를 키면 어떤 일을 더 할까요? 정리해볼께요 콜트래이스 저장슬랩 메모리를 할당 및 해제할 때 콜트래이스를 저장해요. 이 콜트래이스는 struct track 변수에서 쓰이거든요. 우리가 알고 있는 슬랩의 종류는 30여 가지나 되죠. 이런 슬랩 메모리를 할당하고 해제할 때 콜스택을 모두 저장한다는 것은 시스템에 과부하를 주게 되요. 성능이 좋지 않은 CPU가 탑재된 타겟 디바이스에서 심하면 부팅도 제대로 못할 수도 있어요. 아래 Slab corruption으로 커널 패닉이 발생한 로그를 잠깐 봅시다. 아래 커널 로그는 lkdtm feature를 써서 WRITE_AFTER_FREE 버그를 강제로 유발시킨 건데요. 문제 발생 코드는 아래와 같아요.(CONFIG_LKDTM을 키고 커널 이미지를
[Linux][Kernel] 슬랩 Slab Memory 소개
리눅스 커널 Memory Management의 꽃 슬랩(Slab)을 소개할께요. 슬랩이 소개 되기 전 리눅스 커널 메모리는 모두 동적 할당을 했어요. 한참 그렇게 메모리를 썼었죠. 그러다가 메모리 성능을 높이기 위한 과제를 리눅스 커널 전문가들이 진행했어요. 여러가지 메모리 성능을 키우는 코드 작업을 진행하다가, 한 가지 조사를 했어요. 뭐나면, 어떤 타입의 메모리를 커널 코드에서 할당하는지에 대해서였어요. 그런데 재미있게도 메모리를 할당하는 패턴이 정해져 있다는 걸 확인했어요. 평범한 서민들이 먹는 식단을 몇 가지가 될까요? 아마 전 먹는 메뉴가 20여 가지로 정해져 있거든요. 비빔밥, 짜장면, 고구마(저녁으로 먹죠), 스타벅스, 삽겹살, 순대… 저 같은 경우는 20가지도 안되는 것 같네요. 그래서



![[Spoiler] '우주 형제' 완결. 매거진 신작 '천선 전기'.](https://img.zoomtrend.com/2026/06/10/1781142015-ECBD98ED8AB8EBA1A4EB9FACEBA5BCEB93A0EC9E90.jpg)