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

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

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

Clang 빌드된 커널에 KCFI 적용 시 Slab 메모리 사용량 차이 분석

KCFI(CONFIG_CFI_CLANG)는 간접 호출마다 함수 타입 해시를 대조해 제어 흐름 하이재킹을 막는 Clang 전용 보호 기능이다. 함수마다 타입 ID가 붙고 호출 지점마다 검사 코드가 들어가니 커널이 커지는 것은 분명한데, 그러면 런타임…

Continue ReadingClang 빌드된 커널에 KCFI 적용 시 Slab 메모리 사용량 차이 분석

리눅스 커널 GCC 빌드와 Clang 빌드에 따른 Slab 메모리 차이 분석

커널을 Clang으로 빌드하면 GCC 빌드와 메모리 사용량이 달라질까. 컴파일러가 바뀌면 인라이닝과 코드 생성이 달라지니 커널이 잡는 슬랩(slab) 메모리도 따라 달라질 것 같지만, 실제로 재보면 어느 쪽이 얼마나 다른지 숫자로 답한…

Continue Reading리눅스 커널 GCC 빌드와 Clang 빌드에 따른 Slab 메모리 차이 분석

Ubuntu에서 커널을 직접 빌드해 DAMON 활성화하기

Ubuntu 24.04 generic 커널은 CONFIG_DAMON이 꺼져 있어 /sys/kernel/mm/damon/admin/이 없다. 실제로 쓰려면 커널을 직접 빌드해야 한다. 현재 설정 기반으로 DAMON 옵션만 추가해 빌드·설치·재부팅하고 동작까지 확인한 기록이다. 준비 $ sudo apt-get install…

Continue ReadingUbuntu에서 커널을 직접 빌드해 DAMON 활성화하기

fatal error: gelf.h: No such file or directory 오류

Linux 커널을 소스에서 빌드하다 보면 tools/objtool을 컴파일하는 단계에서 gelf.h 헤더를 찾지 못해 빌드가 중단되는 경우가 있다. objtool은 커널 빌드 시 오브젝트 파일의 제어 흐름을 분석해 ORC unwinder 테이블 생성, retpoline/livepatch…

Continue Readingfatal error: gelf.h: No such file or directory 오류