
리눅스 창시자 리누스 토르발스가 AI 코딩 도구 Claude Code를 활용해 커널의 파일 읽기 경로를 개선하는 실험에 나섰다. 리눅스 커널 공식 저장소의 커밋 원문에 따르면, 토르발스는 자신의 지휘 아래 코드와 테스트 프로그램, 문제점 검토, 설명문 초안을 Claude Code와 함께 작성했다. 성능 측정은 본인 컴퓨터에서 직접 수행했다고 밝혔다.
10월 10일 작성된 커밋은 ‘noref-filemap-read-with-llm’ 브랜치에 올라와 있다. Linux 7.3-rc6에 수정 사항을 더한 코드를 기반으로 한 8개 패치로, 정식 릴리스에 적용된 기능이 아니라 해결되지 않은 문제와 검토 요청을 담은 실험이다.
대상은 여러 스레드가 같은 파일에서 작은 데이터를 반복해서 읽을 때 생기는 병목이다. 기존 경로는 읽기마다 페이지 캐시의 메모리 단위인 폴리오(folio)의 참조 수를 올리고 내린다. 여러 CPU가 같은 참조 수를 갱신하면 캐시 일관성을 유지하는 과정에서 경합이 발생한다.
새 방식은 파일 데이터를 캐시에서 제거한 뒤에도 메모리를 바로 재사용하지 않고 RCU(Read-Copy Update) 유예 기간이 끝날 때까지 기다린다. 읽는 동안 데이터가 담긴 메모리가 다른 용도로 바뀌지 않도록 해, 빠른 읽기 경로에서는 폴리오 참조 수를 갱신하지 않는 것이 핵심이다. 조건을 충족하지 못하거나 사용자 메모리에서 페이지 폴트가 발생하면 기존 읽기 경로로 돌아간다.
토르발스가 공개한 측정에서 8개 스레드가 한 페이지짜리 파일의 같은 위치를 16바이트씩 읽을 때 처리량은 초당 990만~1040만 회에서 3000만~3300만 회로 늘었다. 읽기 한 번에 쓰인 커널 CPU 사이클도 2937~2975에서 725~726으로 줄었다.
다만 결과는 4코어·8스레드 인텔 i7-8565U 노트북과 ext4 파일시스템에서 얻었다. 보안 완화 기능과 CONFIG_HARDENED_USERCOPY 옵션을 끈 환경이며, 토르발스는 온도에 따른 성능 제한 때문에 초당 처리량보다 읽기당 비용을 비교하라고 설명했다. 아직 더 큰 시스템에서는 측정하지 않았고, 사용자 버퍼의 페이지가 준비되지 않은 일부 테스트에서는 비용이 오히려 증가했다. 전체 리눅스 성능이 일괄적으로 향상된다는 의미는 아니다.
남은 과제도 원문에 상세히 적었다. 해제를 미룬 페이지를 메모리 할당기가 집계하지 못하는 문제, 연속 메모리 할당(CMA) 회귀, s390에서의 보안 메모리 처리, splice 동작 변경 등이 포함된다. 메모리 압박 상황을 포함한 폭넓은 부하와 xfstests, KASAN 등 추가 검증도 아직 수행하지 않았다.
이번 작업은 AI 도구를 커널 개발에 활용한 사례이지만, 원문은 성능 개선 수치와 함께 설계상 한계와 시험 범위를 공개하고 있다. 코드를 작성하는 단계와 커널에 안전하게 통합할 수 있는지 판단하는 단계가 별개의 과제로 남아 있음을 보여준다.
출처: 리눅스 커널 공식 저장소, 리누스 토르발스 커밋 원문(공식 Google 미러) https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux/+/4c0f3697118eb3a708ea79175f7f07c43339bfab









