Clang 빌드된 커널에 LTO 옵션 적용 시 Slab 메모리 비교
앞선 두 글에서 GCC/Clang 빌드와 KCFI 빌드의 슬랩(slab) 사용량을 비교할 때 쓴 테스트 커널은 모듈을 하나도 올리지 않은 상태였다. LTO(Link Time Optimization)도 같은 방식으로 재면 부팅 직후 슬랩은 Clang 빌드와…
앞선 두 글에서 GCC/Clang 빌드와 KCFI 빌드의 슬랩(slab) 사용량을 비교할 때 쓴 테스트 커널은 모듈을 하나도 올리지 않은 상태였다. LTO(Link Time Optimization)도 같은 방식으로 재면 부팅 직후 슬랩은 Clang 빌드와…
(3)편에서 Kconfig 옵션만으로 bzImage를 31% 줄였다. 여기서 한 걸음 더 들어가면 두 갈래 길이 남는다 — 컴파일러가 코드를 어떻게 만들어내는지(최적화 옵션, LTO)와, 애초에 커널 이미지에 무엇을 실어 보낼지(built-in vs module,…
GCC vs Clang 커널 빌드 차이에서는 LTO를 "Clang 쪽이 ThinLTO를 지원해 더 현실적"이라는 수준으로만 짚고 넘어갔다. 하지만 정작 -O2와 -O3가 실제로 무엇을 다르게 하는지, LTO가 정확히 어떤 상황에서 이득을 주는지는…