요약:
Linux 7.4 개발 버전에는 커널 컴파일 프로세스에서 단일 스레드 병목 현상과 반복 작업 속도를 높이기 위해 일련의 Kbuild 최적화 변경 사항이 통합되었습니다. Kbuild는 구성, 컴파일 및 연결 단계를 구성하는 Linux 커널의 빌드 시스템입니다. 관련 변경 사항은 Arm 엔지니어이자 오랜 커널 개발자인 Lorenzo Stoakes가 제안했습니다.

이번 라운드에 통합된 최적화에는 커널 이미지의 .modinfo 섹션 할당 오버헤드 감소, kallsyms 기호 테이블 생성 가속화, 순서가 관련이 없는 경우 nm 출력 정렬 건너뛰기, 최종 링크 단계에서 필요한 재배치 정보만 생성, C 언어로 mksysmap 재작성, 결과를 캐시하기 위해 일부 컴파일러 및 링커 기능 테스트를 Kconfig 단계로 이동하는 것이 포함됩니다. 또한 시스템에 pigz가 설치된 경우 gzip 압축 속도를 높이기 위해 먼저 사용됩니다. 위의 조정을 통해 중간 데이터 처리, 반복되는 검색 및 직렬화 단계가 각각 줄어듭니다.
전체 패치 시리즈의 초기 테스트에서는 모든 모듈이 활성화된 빌드가 약 36% 더 빠르고, 증분 컴파일이 약 70% 더 빠르며, 실제 재구축이 없는 무작동 빌드가 최대 약 90% 더 빠른 것으로 나타났습니다. 그런 다음 Phoronix는 듀얼 소켓 AMD EPYC 9575F 서버 및 Ubuntu 26.04 LTS에서 전체 v4 패치 세트를 테스트했습니다. 클린 x86_64 defconfig 커널 빌드는 약 22초에서 15~17초로 단축되었고, allmodconfig 빌드는 30초 이상 단축되었습니다. 그러나 이 숫자는 전체 패치 세트를 테스트합니다. Linux 7.4에는 현재 일괄 변경 사항만 통합되어 있습니다. 실제 이점을 평가하기 전에 더 많은 패치가 통합될 때까지 기다려야 합니다.
이 최적화 작업도 AI 도구에 의존합니다. Stoakes는 건설 병목 현상을 찾고 개선 솔루션을 탐색하기 위해 대규모 언어 모델을 사용했지만 모델에서 생성된 코드 중 일부의 품질이 좋지 않았다고 말했습니다. 그는 대량의 코드를 직접 검토하고 다시 작성했으며 빌드 결과, 커널 실행 및 성능 변경 사항을 수동으로 확인했습니다.
댓글