리누스 토발즈가 10월 18일(현지 시간) 리눅스 커널 7.3을 릴리스했습니다. 평소처럼 9주 개발 주기였지만 숫자는 평소와 전혀 다릅니다. 프로젝트 역사상 처음으로 한 주기의 전체 커밋이 2만 건을 넘었습니다. 개발자 수는 7.2가 세운 기록을 한 사이클 만에 400명 가까이 넘어섰습니다. LLM 보조 기여가 만든 결과입니다. LWN의 조너선 코벳(Jonathan Corbet)은 이번 개발 통계에서 처음으로 한 가지 질문에 데이터로 답해 봤습니다. 자동 패치 리뷰가 정말 커널에 들어오는 버그를 줄이고 있느냐는 질문입니다. 이 글에서는 7.3의 주요 변경과 기록적인 개발 통계, 그리고 그 질문에 대한 잠정적인 답을 정리합니다.
릴리스 공지와 주요 변경
토발즈의 릴리스 공지는 짧았습니다. 이번 주에는 요일을 잊지 않아 릴리스가 엉뚱하게 늦어지지 않았다는 농담으로 시작합니다. 마지막 주에 특별한 일은 없었다고 덧붙였습니다. 다만 연례 가족 휴가 중이라 7.4 머지 윈도우 첫날은 “대부분 보트 위와 물속에서” 보내고 오후부터 머지를 시작한다고 했습니다. 한동안 일정이 평소와 다를 수 있다는 예고입니다.
기능 쪽은 머지 윈도우 글에서 다룬 내용이 그대로 최종 릴리스에 들어갔습니다. 핵심만 추리면 다음과 같습니다.
| 분야 | 변경 |
|---|---|
| 스케줄러 | sched_ext 서브스케줄러 완성. cgroup마다 다른 BPF 스케줄러를 붙일 수 있고, 실패한 스케줄러에 갇힌 태스크를 대역폭 제한된 “rescue” 경로로 실행. cgroup 가중치 분배 방식을 고르는 cgroup_mode(up/max/concur/tasks, 기본 concur) 추가 |
| 샌드박싱 | 모든 연산이 EOPNOTSUPP로 실패하는 의사 파일시스템 failfs와, 파일 디스크립터로 루트를 바꾸는 fchroot() 시스템 콜. no_new_privs가 켜진 태스크는 권한 없이 failfs로 chroot 가능 |
| binfmt_misc | BPF 프로그램이 매칭과 인터프리터 선택을 맡아 실행마다 인터프리터를 계산. patchelf나 래퍼 스크립트 없이 Nix 같은 재배치 가능 바이너리를 지원 |
| 메모리 | VM 게스트 메모리 워킹셋 추적용 UFFDIO_REGISTER_MODE_RWP, zswap cgroup별 선제 writeback, zsmalloc zs_free() 락 경합 감소(마이크로벤치마크 최대 1.83배) |
| 파일시스템 | Btrfs direct I/O가 이론 최대치의 약 50%에서 95%로. ntfs3 대체 데이터 스트림(ADS) 기본 지원, NTFS의 Windows 시스템 압축(WOF) 읽기. Overlayfs idmapped 마운트 |
| SMB 서버(ksmbd) | Apple Time Machine 지원(옵트인), 공유별 SMB3 암호화, SMB Direct RDMA 암호화, SMB3 요청 재전송 |
| 블록·BPF | 블록 장치에서도 RWF_DONTCACHE 동작. BPF 프로그램용 전역 per-CPU 데이터 |
7.3은 올해의 장기 지원(LTS) 커널이 될 것으로 예상됩니다. 그래서 이번 사이클에 쌓인 코드의 품질이 더 중요합니다.
모든 기록을 갈아치운 사이클
LWN이 집계한 7.3 개발 통계는 다음과 같습니다.
| 항목 | 7.3 | 비고 |
|---|---|---|
| 머지 제외 커밋 | 18,765건 | 전체 커밋은 사상 첫 2만 건 돌파 |
| 추가 / 삭제 라인 | 약 92만 / 27만 줄 | 순증 약 65만 줄 |
| 개발자 | 3,021명 | 7.2의 2,652명 기록을 한 주기 만에 경신 |
| 첫 기여자 | 807명 | 전체의 4분의 1 이상 |
| 식별된 고용주 | 232곳 | 소속 불명(Unknown)이 20.5%로 1위 |
| Reviewed-by 비율 | 50.9% | 몇 주기째 이어지던 하락세가 반전 |
| Tested-by 비율 | 7.5% | 1,399개 커밋 |
rc 단계의 흐름도 안정적이었습니다. rc1까지 16,267건이 들어왔고, 이후 주당 커밋은 681 → 733 → 598 → 649 → 596 → 447건으로 줄었습니다. 최종 릴리스 주에는 289건이었습니다.
새 얼굴이 이끈 기여 순위
체인지셋 기준 상위권에는 낯선 이름이 많습니다.
| 순위 | 개발자 | 체인지셋 | 내용 |
|---|---|---|---|
| 1 | 크리스티안 브라우너(Christian Brauner) | 216 | binfmt_misc 대폭 개선, VFS 전반 수정 |
| 2 | Bui Duc Phuc | 206 | 7.1에서 처음 등장. 사운드 드라이버 수정 위주 |
| 3 | Pengpeng Hou | 165 | 7.0에서 처음 등장. 드라이버 전반 수정 |
| 4 | 숀 크리스토퍼슨(Sean Christopherson) | 161 | KVM |
| 5 | Pan Chuang | 150 | 그동안 커밋 3건뿐이었으나 이번에 드라이버 정리 패치 대량 기여 |
변경 라인 기준 1위는 아우라빈도 필라이(Aurabindo Pillai)입니다. 커밋 5개로 전체의 12.5%를 차지했습니다. 내용은 기계 생성한 amdgpu 레지스터 정의입니다. 테스트 쪽에서는 댄 휠러(Dan Wheeler)가 Tested-by 261건으로 압도적입니다. 63일 동안 하루 4건꼴로 AMD 그래픽 드라이버 변경을 테스트했습니다. 리뷰 1위 콘라드 디브치오(Konrad Dybcio)는 Qualcomm 드라이버와 디바이스 트리 변경 474건을 리뷰했습니다. 하루 7건이 넘습니다.
고용주 통계에서 눈에 띄는 곳은 Kylinsoft입니다. 중국 Kylin OS 배포판을 만드는 회사로, 체인지셋 624건(3.3%)으로 8위에 올랐습니다. 7.3에 기여한 소속 개발자는 92명입니다. 대부분 몇 건씩만 넣었고, 상당수가 이번이 첫 기여입니다. 코벳은 이들이 집단으로 LLM이 찾은 버그 목록을 처리하는 것으로 보인다고 분석했습니다.
버그 리포트의 절반은 자동화 시스템
Reported-by 태그는 1,411개 커밋(7.5%)에 붙었습니다. 1위는 1년 전에는 존재하지도 않았던 LLM 기반 패치 리뷰 도구 Sashiko입니다.
| 리포터 | 건수 | 비율 |
|---|---|---|
| Sashiko | 304 | 19.4% |
| Syzbot | 239 | 15.3% |
| kernel test robot | 89 | 5.7% |
| Vega | 83 | 5.3% |
| 니컬러스 칼리니(Nicholas Carlini) | 41 | 2.6% |
| TencentOS Corvus AI | 13 | 0.8% |
| autonomouscodesecurity@microsoft.com | 9 | 0.6% |
자동화 시스템을 모두 합치면 크레딧이 붙은 버그 리포트의 절반 가까이를 차지합니다. 퍼저(fuzzer)인 Syzbot과 빌드 로봇에 더해, 이제 LLM 기반 리뷰·감사 도구가 커널 버그 발견의 주요 경로가 됐습니다.
자동 리뷰는 버그를 줄이고 있을까
새 기여자가 쏟아지면서 우려도 커졌습니다. 상당수는 LLM으로 고치는 코드를 실제로 이해하지 못합니다. 반대편에는 자동 패치 리뷰가 품질을 끌어올려 사람 개입을 줄여도 된다는 주장이 있습니다. 버그 상당수는 드러나는 데 몇 년이 걸리니 확실한 답은 아직 없습니다. 코벳은 대신 일찍 드러나는 버그를 봤습니다. 기준은 Fixes 태그가 가리키는 커밋의 시점입니다.
| 지표 | 의미 | 추세 |
|---|---|---|
| 직전 릴리스 버그 수정 | 7.3 커밋 중 7.2에서 들어온 버그를 고친 것 | 절대 수는 큰 변화 없음. 전체 패치량이 늘었으니 비율로는 하락 |
| 같은 주기 내 버그 수정 | 7.3 머지 윈도우에 들어와 릴리스 전에 고쳐진 버그 | 전체 커밋 대비 비율이 수년간 일정하다가 7.1부터 하락, 최근 더 가파름 |
두 번째 지표는 릴리스된 커널까지 가지 않는 버그입니다. 코드가 넓게 테스트되자마자 드러나는 종류입니다. 이 비율이 떨어진다는 건 자동 리뷰가 이런 버그를 머지 전에 걸러내고 있을 가능성을 보여줍니다. 버그는 그대로 들어오는데 찾아서 고치는 속도가 느려졌다는 해석도 가능합니다. 하지만 전반적인 버그 발견 속도가 빨라진 상황이라 코벳은 그 가능성을 낮게 봤습니다. 결론은 조심스럽습니다. 적어도 명백한 버그에 관해서는 커널에 들어가는 코드 품질이 나아지고 있을지도 모른다는 것입니다.
메인테이너들의 엇갈린 반응
숫자가 좋아 보여도 현장의 부담은 다른 이야기입니다. 같은 주 LWN에 실린 인용문들이 이를 보여줍니다.
- 이르지 코시나(Jiri Kosina) — 하루 만에 v1부터 v11까지 패치 세트를 받았습니다. 사람 리뷰는 하나도 없었고 Sashiko 피드백이 즉각 재전송을 유발했습니다. 그는 “지속 가능하지 않다”고 했습니다.
- 알렉세이 스타로보이토프(Alexei Starovoitov) — 정반대입니다. “스팸을 계속 보내라”고 했습니다. 에이전트가 받은편지함을 감시하다 새 버전이 오면 이전 버전을 보관하고 논의를 요약하게 하면 된다는 것입니다. 봇끼리 대화가 멈출 때까지 기다렸다가 사람의 몫을 하면 된다고 했습니다.
- 리우드 폴(Lyude Paul) — LLM은 정적 분석기나 Rust와 다르다고 했습니다. 새 기여자를 대하는 방식, 즉 프로젝트의 사회적 계약 자체를 바꿨다는 지적입니다.
- 로랑 핀샤르(Laurent Pinchart) — 메인테이너 서밋 이후 여러 개발자가 이직을 고민해야 하냐고 물어왔다고 했습니다. 완벽한 패치가 아니면 무시당하고, LLM을 안 쓰면 기여가 묵살될 거라는 인상 때문입니다. 그는 메인테이너들이 공개적으로 이를 바로잡아 달라고 요청했습니다.
핀샤르는 같은 주 발표된 Linux Foundation 기술 자문 위원회(TAB) 선거에서 새 위원으로 선출됐습니다. 이 문제가 TAB 차원에서도 논의될지 지켜볼 만합니다.
정리
7.3은 커널 개발 공동체가 바뀌고 있다는 걸 숫자로 보여준 릴리스입니다. 개발자 4명 중 1명 이상이 처음 보는 사람이고, 버그 리포트 절반이 기계에서 옵니다. 그런데도 같은 주기 안에서 고쳐지는 버그 비율은 오히려 줄었습니다. 자동 리뷰 효과에 대한 첫 정량 신호입니다. 다만 장기적으로 드러나는 버그까지 줄었는지는 몇 년이 지나야 알 수 있습니다.
기록은 오래가지 않을 것 같습니다. 7.4 머지 윈도우가 열린 시점에 linux-next에는 머지 제외 체인지셋이 약 16,000건 쌓여 있었습니다. 7.3 때보다 상당히 많은 양입니다. 7.3을 LTS 기반으로 쓸 계획이라면 7.3.y 안정 업데이트에 들어오는 수정 패치의 양부터 지켜보는 것이 좋겠습니다.