lockstat 사용법 — /proc/lock_stat으로 커널 락 경합 지점 찾기
멀티코어에서 처리량이 코어 수만큼 늘지 않고 어느 지점부터 오히려 떨어질 때, 원인이 락 경합(lock contention)인 경우가 많다. perf lock은 배포판 커널 그대로도 쓸 수 있어 편하지만 트레이스포인트를 기록하는 방식이라 "측정하는…
멀티코어에서 처리량이 코어 수만큼 늘지 않고 어느 지점부터 오히려 떨어질 때, 원인이 락 경합(lock contention)인 경우가 많다. perf lock은 배포판 커널 그대로도 쓸 수 있어 편하지만 트레이스포인트를 기록하는 방식이라 "측정하는…
앞선 편들에서 module! 매크로로 init/exit을 가진 모듈을 만들고 misc device까지 붙여봤다. 그런데 실제 하드웨어를 다루는 드라이버는 insmod 시점에 일을 시작하지 않는다. 모듈은 "이런 하드웨어를 담당할 수 있다"고 등록만 해두고, 그…
이번 주 LWN.net 위클리 에디션 주요 내용이다. 30년 가까이 큰 변화가 없던 binfmt_misc에 BPF 프로그램이 인터프리터를 고르는 인터페이스가 들어오고, 반대로 블록 계층 오류 주입에서는 BPF 기반 설계가 명시적으로 거부됐다. 단일…
오픈소스 서밋 코리아 2026이 8월 11일 서울 파르나스 호텔에서 막을 올렸습니다. 지난 예고 글에서 기조연설 라인업과 트랙 구성을 정리했는데, 이번에는 실제로 무대에서 어떤 이야기가 나왔는지를 정리합니다. 키워드는 하나로 모입니다. AI가…
권한이 있는 프로세스만 열 수 있는 파일이나 소켓을, 정작 일은 권한 없는 프로세스가 처리해야 하는 구조가 종종 필요하다. 경로만 넘겨주고 상대가 다시 open()하게 하면 권한이 없어 실패하거나, 그 사이 파일이…
Yocto로 이미지를 만들다 보면 패키지 하나를 넣거나 빼야 할 일이 계속 생긴다. 그런데 local.conf에 IMAGE_INSTALL += "strace"라고 적어도 이미지에 strace가 들어가지 않는다. 이미지 레시피가 IMAGE_INSTALL을 다시 할당해버리기 때문인데, 이처럼 변수마다…
Ubuntu Server는 설치 직후 CLI만 있는 상태다. 평소에는 문제가 없지만 GUI 전용 관리 도구를 써야 하거나 서버에 연결된 모니터로 직접 작업할 일이 생기면 데스크톱 환경(desktop environment)을 얹어야 한다. 문제는 데스크톱…
커널이 제공하는 트레이스 이벤트는 Ubuntu 24.04 기준 1789개다. 어떤 이벤트를 봐야 할지 모르겠다고 events/enable에 1을 써버리면 1초 만에 수십만 건이 링 버퍼에서 밀려나 사라지고, 정작 보려던 이벤트도 그 안에 묻힌다.…
스레드를 늘렸는데 처리량이 비례해서 오르지 않고, 프로파일을 떠보면 _int_malloc이나 __lll_lock_wait 같은 함수가 상위에 올라오는 경우가 있다. glibc의 malloc은 아레나(arena) 단위로 락을 잡기 때문에, 짧은 객체를 자주 할당·해제하는 코드에서는 이 락이…
스레드를 늘렸는데 처리량이 그대로이거나 오히려 떨어질 때, top은 sys 시간이 높다는 것까지만 알려준다. perf top으로 어느 함수가 CPU를 쓰는지 좁혀도 "락을 기다리느라 잠들어 있던 시간"은 CPU 프로파일에 잡히지 않는다. perf…