리눅스 커널 7.3-rc2, kmalloc() 호출을 kmalloc_obj()로 추가 전환 — Coccinelle이 놓친 scoped_guard 함수들

9월 6일 공개된 리눅스 커널 7.3-rc2에는 기능 추가 없이 코드 모양만 바꾸는 대형 패치가 하나 들어갔습니다. 키스 쿡(Kees Cook)이 보낸 kmalloc_obj() 전환 풀 리퀘스트입니다. 304개 파일에서 637줄이 추가되고 726줄이 삭제됐습니다.…

Continue Reading리눅스 커널 7.3-rc2, kmalloc() 호출을 kmalloc_obj()로 추가 전환 — Coccinelle이 놓친 scoped_guard 함수들

Clang 빌드된 커널에 LTO 옵션 적용 시 Slab 메모리 비교

앞선 두 글에서 GCC/Clang 빌드와 KCFI 빌드의 슬랩(slab) 사용량을 비교할 때 쓴 테스트 커널은 모듈을 하나도 올리지 않은 상태였다. LTO(Link Time Optimization)도 같은 방식으로 재면 부팅 직후 슬랩은 Clang 빌드와…

Continue ReadingClang 빌드된 커널에 LTO 옵션 적용 시 Slab 메모리 비교

슬랩 할당 백트레이스 추적: alloc_calls에서 alloc_traces로

슬랩 캐시가 계속 커질 때 /proc/slabinfo는 어느 캐시에 오브젝트가 몇 개 있는지만 알려주고, 그 오브젝트를 누가 할당했는지는 알려주지 않는다. SLUB에는 오브젝트마다 마지막 할당·해제 호출 스택을 기록하는 기능이 있어서 이 질문에…

Continue Reading슬랩 할당 백트레이스 추적: alloc_calls에서 alloc_traces로