리누스 토르발스(Linus Torvalds)가 앤스로픽의 Claude Code를 활용해 리눅스 커널 패치를 작성했다. 여러 코어가 같은 파일의 작은 데이터를 읽을 때 생기는 페이지 캐시 병목을 겨냥한 패치지만, 메모리 회수 문제와 일부 읽기 작업의 성능 저하가 남아 있어 아직 메인라인에 반영되지 않았다.
토르발스는 커널 저장소 커밋에서 코드와 테스트 프로그램, 검토 자료, 제출문 초안을 자신의 지시 아래 Claude Code로 작성했다고 밝혔다.
문제는 여러 스레드가 캐시에 올라온 같은 파일에서 소량의 데이터를 반복해 읽을 때 발생한다. 스레드마다 데이터를 담은 메모리 객체의 참조 횟수를 갱신하면서 여러 코어가 공유 캐시 라인을 놓고 경쟁한다. 토르발스가 개인 노트북에서 진행한 시험에서는 4코어 8스레드 Intel Core i7-8565U에 8개 스레드를 띄워 같은 페이지에서 16바이트씩 읽게 했을 때, 측정된 코어 간 부하의 99.92%가 공유 캐시 라인에 집중됐다. 이 수치는 HITM(수정 상태 캐시 라인 적중)으로 측정했다.
제안된 패치는 페이지 캐시에서 빠진 메모리를 즉시 재사용하지 않고, 읽기 복사 갱신(read-copy-update, RCU)의 유예 기간이 지난 뒤 재사용하도록 한다. 이를 통해 RCU 읽기 구간 안에서 동작하는 읽기 작업은 참조 횟수를 갱신하지 않고 데이터를 사용자 버퍼로 복사할 수 있다.
해당 시험에서 8개 스레드의 처리량은 초당 약 990만~1,040만 회에서 3,000만~3,300만 회로 늘었고, 읽기 한 번당 커널 사이클은 약 2,950회에서 725회로 줄었다. 단일 스레드에서는 읽기당 약 452~454회에서 408~409회로 개선 폭이 작았다. 토르발스는 CPU가 더 많거나 소켓이 둘 이상인 시스템에서 이득이 더 클 수 있다고 했지만, 더 큰 시스템에서는 아직 측정하지 않았다고 밝혔다. 이는 특정 작은 읽기 작업을 개인 노트북에서 시험한 결과이며, 리눅스 전체가 세 배 빨라진다는 뜻은 아니다.
해결되지 않은 부분도 있다. 메모리 재사용을 늦추면 RCU 유예 기간을 기다리는 동안 페이지를 쓸 수 없게 된다. 토르발스는 제출문에서 메모리 회수 문제가 패치 시리즈에서 가장 덜 해결된 부분이라고 설명했다. 아직 매핑되지 않은 사용자 페이지를 읽을 때는 기존 구현으로 넘어가기 전 예외가 한 번 더 발생하는 성능 저하도 있다. 10월 13일 기준으로 이 변경은 메인라인 Linux 7.3-rc6에 포함되지 않았으며, 병합 여부와 시점은 정해지지 않았다.
토르발스는 이전에도 AI가 개발자의 일을 돕는 도구가 될 수 있다고 말해 왔다. 2023년에는 AI가 버그를 찾는 데 도움을 줄 가능성에 주목했고, 2025년 말에는 코드 유지보수와 패치 검토에도 관심을 보였다. 2026년 1월에는 취미 프로젝트에서 AI를 활용한 코딩을 시도했다. 관련 발언은 ZDNET 인터뷰, 2023년 인터뷰, 2025년 보도, 2026년 보도에서 확인할 수 있다. 이번 패치는 AI가 리눅스 커널의 새 코드를 만드는 데 쓰인 사례지만, 실제 커널에 반영되려면 남은 기술적 문제를 해결해야 한다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요