리눅스 커널 mm 서브시스템 동향 (1) — 개발 구조와 추적 방법

리눅스 커널 메모리 관리(mm) 서브시스템은 mm/ 디렉터리에만 C 파일이 165개 있고, 릴리스마다 340~550개 커밋이 들어온다. 관심 있는 주제의 패치를 쓰려면 먼저 코드가 어느 트리를 거쳐 메인라인에 들어가는지, 누가 리뷰하는지, 지금 무엇이 논의되는지를 알아야 한다. 2026년에는 오랜 메인테이너 Andrew Morton이 물러나기 시작하면서 이 흐름 자체가 바뀌고 있다.

이 시리즈는 2026년 10월 30일 메인라인(7.4 머지 윈도우 2주차)을 기준으로 mm 서브시스템의 현재 상황을 정리한다. 1편인 이 글에서는 mm 트리의 브랜치 구조와 바뀐 메인테이너 체제를 먼저 본다. 이어서 릴리스별 변경량, 리뷰 현황, 커밋에서 토론까지 따라가는 방법을 정리한다. 수치는 모두 아래에 보인 git 명령을 실제로 실행해서 얻었다.

이 시리즈의 다른 글

mm 트리의 브랜치 구조

mm 패치 대부분은 Andrew Morton의 akpm/mm.git을 거친다. 패치는 아래 브랜치를 차례로 통과하며 테스트 기간을 쌓는다.

브랜치역할linux-next 포함
mm-new새로 받은 패치가 먼저 쌓이는 곳. 리뷰가 덜 끝난 시리즈도 들어온다아니오
mm-unstable다음 머지 윈도우를 노리는 시리즈. 리뷰 결과에 따라 빠지거나 다시 쓰인다예
mm-stable머지 윈도우에 리누스에게 보낼 확정본. 이 단계부터는 커밋 해시가 고정된다예
mm-hotfixes-unstable / -stable현재 rc 사이클에 들어갈 버그 수정예
mm-nonmm-unstable / -stablemm 밖이지만 Morton이 받아주는 패치(lib/, kernel/ 일부 등)예

메인라인과 mm 브랜치를 함께 받아 두면 각 단계에 무엇이 남아 있는지 바로 셀 수 있다. 커밋 메타데이터만 필요하므로 blob 없는 클론으로 충분하다.

git clone --filter=blob:none --no-checkout \
    https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
cd linux
git remote add mm https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git
git fetch mm mm-stable mm-unstable mm-new mm-hotfixes-unstable

for b in mm-stable mm-unstable mm-new mm-hotfixes-unstable; do
    echo "$b: base=$(git describe --tags --abbrev=0 mm/$b)" \
         "ahead_of_master=$(git rev-list --count origin/master..mm/$b)"
done
mm-stable: base=v7.3 ahead_of_master=0
mm-unstable: base=v7.3 ahead_of_master=63
mm-new: base=v7.3 ahead_of_master=118
mm-hotfixes-unstable: base=v7.3 ahead_of_master=57

mm-stable이 0인 이유는 7.4 머지 윈도우에서 이미 전부 메인라인에 들어갔기 때문이다. 지금 mm-unstable에 남은 63개는 버그 수정과 작은 개선이 중심이다. 7.5용 기능 시리즈는 rc1 이후에 본격적으로 쌓인다.

2026년 메인테이너 체제 변화

2026년 4월 21일 Andrew Morton은 mm 메인테이너 역할에서 단계적으로 물러나겠다고 밝혔다. 5월 LSFMM+BPF 서밋에서는 통합 트리 관리를 David Hildenbrand가 맡기로 했다. 하위 영역은 별도 트리로 옮겨 가는 방향이다. 7.4 머지 윈도우의 mm 관련 풀 리퀘스트를 보면 이 변화가 이미 드러난다.

git log --merges --format='%h %ci %s' v7.3..origin/master \
    | grep -E 'akpm/mm|kernel/git/mm/'
8a36f53fd5e 2026-10-27 12:23:17 -1000 Merge tag 'mm-stable-2026-10-25-19-27' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
7d1f84f1b94 2026-10-27 12:08:22 -1000 Merge tag 'mm-nonmm-stable-2026-10-25-14-57' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
394023fbe34 2026-10-25 17:27:19 -1000 Merge tag 'memblock-v7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mm/memblock
7a78f7ba9f2 2026-10-23 09:51:16 -1000 Merge tag 'slab-for-7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/mm/slab
2ee2475e15b 2026-10-23 09:13:11 -1000 Merge tag 'mm-core-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mm/core
c5fd5e67c78 2026-10-23 07:42:11 -1000 Merge tag 'mm-stable-2026-10-19-21-33' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm

kernel/git/mm/ 아래의 공동 네임스페이스가 새로 생겼다. 7.2까지 slab은 vbabka/slab, memblock은 rppt/memblock처럼 개인 트리에서 왔다. 7.4에서는 Hildenbrand가 mm/core 트리로 메모리 핫플러그와 GUP 변경을 직접 보냈다.

풀 리퀘스트 (7.4)보낸 사람규모·내용
mm-stable-2026-10-19Andrew Morton539 커밋. mm 본체의 1차분
mm-stable-2026-10-25Andrew Morton213 커밋. 2차분과 버그 수정 65건
mm-core-7.4-rc1David Hildenbrand메모리 핫플러그(MEMHP), GUP
slab-for-7.4Harry Yooslab 할당자. sheaf prefill 개선 등
memblock-v7.4-rc1Mike Rapoport부팅 초기 메모리 할당자

MAINTAINERS 파일에는 MEMORY MANAGEMENT - * 항목이 22개 있다. 패치를 보낼 때 수신자를 고르는 기준이 되므로 관심 영역의 항목은 미리 읽어 둔다.

git show origin/master:MAINTAINERS > MAINTAINERS.txt
grep -c '^MEMORY MANAGEMENT' MAINTAINERS.txt
awk 'index($0,"MEMORY MANAGEMENT - SWAP")==1{p=1} p&&/^$/{exit} p' MAINTAINERS.txt \
    | grep -E '^(M|R|T):'
22
M:	Andrew Morton <akpm@linux-foundation.org>
M:	Chris Li <chrisl@kernel.org>
M:	Kairui Song <kasong@tencent.com>
R:	Kemeng Shi <shikemeng@huaweicloud.com>
R:	Nhat Pham <nphamcs@gmail.com>
R:	Baoquan He <baoquan.he@linux.dev>
R:	Barry Song <baohua@kernel.org>
R:	Youngjun Park <youngjun.park@lge.com>

같은 방법으로 주요 영역의 메인테이너(M)와 트리(T)를 뽑으면 아래와 같다. 리뷰어(R)는 영역마다 5~10명이라 표에서 뺐다.

MAINTAINERS 항목메인테이너(M)트리(T)
MEMORY MANAGEMENT – COREAndrew Morton, David Hildenbrandakpm/mm
MEMORY MANAGEMENT – MEMORY MAPMuchun Song, Mike Rapoport, David Hildenbrandmm/core.git memmap
MEMORY MANAGEMENT – THPAndrew Morton, David Hildenbrandakpm/mm
MEMORY MANAGEMENT – SWAPAndrew Morton, Chris Li, Kairui Song(명시 없음, akpm/mm 경유)
MEMORY MANAGEMENT – RECLAIMAndrew Morton, Johannes Weiner(명시 없음)
MEMORY MANAGEMENT – PAGE ALLOCATORAndrew Morton, Vlastimil Babka(명시 없음)
MEMORY MAPPINGAndrew Morton, Liam R. Howlett, Lorenzo Stoakesakpm/mm
SLAB ALLOCATORVlastimil Babka, Harry Yoo, Andrew Mortonmm/slab.git
MEMBLOCK AND MM INITIALIZATIONMike Rapoportmm/memblock.git
CONTROL GROUP – MEMORY (MEMCG)Johannes Weiner, Michal Hocko, Roman Gushchin, Shakeel Butt(명시 없음)
DAMONSJ Parkakpm/mm, sj/linux.git damon/next
HUGETLB SUBSYSTEMMuchun Song, Oscar Salvador(명시 없음)

릴리스별 변경량

for r in v6.19..v7.0 v7.0..v7.1 v7.1..v7.2 v7.2..v7.3 v7.3..origin/master; do
    printf "%-22s commits=%4d authors=%3d\n" $r \
        $(git rev-list --count --no-merges $r -- mm/) \
        $(git log --no-merges --format=%ae $r -- mm/ | sort -u | wc -l)
done
v6.19..v7.0            commits= 340 authors= 99
v7.0..v7.1             commits= 401 authors= 99
v7.1..v7.2             commits= 341 authors=104
v7.2..v7.3             commits= 547 authors=122
v7.3..origin/master    commits= 540 authors=119

7.3부터 mm/ 커밋이 1.5배로 늘었다. 마지막 줄은 아직 rc1 전이라 7.4 최종 수치는 조금 더 늘어난다. 7.4 머지 윈도우에서 mm/에 커밋이 많은 개발자는 아래와 같다.

git shortlog -sn --no-merges v7.3..origin/master -- mm/ | head -10
    78	SJ Park
    42	Lorenzo Stoakes (ARM)
    35	Muchun Song
    23	Kairui Song
    18	Tal Zussman
    17	David Hildenbrand (Arm)
    14	Gregory Price
    14	Shakeel Butt
    13	Kiryl Shutsemau (Meta)
    12	Christian Brauner

이름이 곧 주제 지도다. SJ Park은 DAMON, Lorenzo Stoakes는 VMA, Muchun Song은 vmemmap과 HugeTLB, Kairui Song은 스왑과 MGLRU를 주로 고친다.

리뷰 현황과 LLM 도구

Morton은 LSFMM+BPF 2026에서 “소수가 리뷰 대부분을 떠맡는다”고 지적했다. 7.4 머지 윈도우의 Reviewed-by/Acked-by 태그를 세어 보면 그 말이 수치로 보인다.

R=v7.3..origin/master
git log --no-merges --format=%b $R -- mm/ | grep -i '^Reviewed-by:' \
    | sed 's/ <.*//' | sort | uniq -c | sort -rn | head -6
git log --no-merges --format=%b $R -- mm/ | grep -i '^Acked-by:' \
    | sed 's/ <.*//' | sort | uniq -c | sort -rn | head -3
echo "reviewers=$(git log --no-merges --format=%b $R -- mm/ \
    | grep -i '^Reviewed-by:' | sed 's/ <.*//' | sort -u | wc -l)"
     55 Reviewed-by: Zi Yan
     43 Reviewed-by: Lorenzo Stoakes (ARM)
     40 Reviewed-by: SJ Park
     35 Reviewed-by: Lance Yang
     34 Reviewed-by: Baolin Wang
     31 Reviewed-by: Barry Song
    135 Acked-by: David Hildenbrand (Arm)
     34 Acked-by: Muchun Song
     30 Acked-by: Qi Zheng
reviewers=69

작성자는 119명인데 리뷰어는 69명이고, Hildenbrand 혼자 135개 커밋에 Ack를 달았다. 540개 중 111개는 리뷰·Ack 태그가 하나도 없다. Matthew Wilcox는 입문하려는 사람에게 “패치 리뷰부터 시작하라”고 권한다. 리뷰어가 부족한 지금은 그 조언이 더 유효하다.

LLM 도구 사용도 빠르게 늘고 있다. 커널은 LLM 도움을 받은 패치에 Assisted-by: 태그를 붙이게 한다.

for r in v6.19..v7.0 v7.0..v7.1 v7.1..v7.2 v7.2..v7.3 v7.3..origin/master; do
    printf "%-22s assisted-by=%3d\n" $r \
        $(git log --no-merges --format=%H -i --grep='^Assisted-by:' $r -- mm/ | wc -l)
done
v6.19..v7.0            assisted-by=  0
v7.0..v7.1             assisted-by=  3
v7.1..v7.2             assisted-by= 13
v7.2..v7.3             assisted-by= 23
v7.3..origin/master    assisted-by= 66

7.4에서는 mm/ 커밋의 12%가 LLM 도움을 받았다. 커뮤니티 반응은 결과물의 품질에 따라 갈린다.

사례반응
Kiryl Shutsemau, userfaultfd 기반 VM 작업 집합 추적 (7.3 머지)설계를 LLM과 토론하고, 생성 코드를 8~10회 직접 검토했다. 7번 리비전 동안 LLM 사용 자체는 문제가 되지 않았다
Rik van Riel, 1GB 페이지 할당 안정화 40패치 시리즈“지금 상태로는 머지 불가”라는 평가를 받았다. 사람 손으로 다시 구현해야 설계 리뷰가 가능하다는 결론이 났다
Sashiko (자동 패치 리뷰 시스템)Morton은 “또 하나의 방어선”으로 보지만, Hildenbrand는 신규 리뷰어의 의욕을 꺾지 않도록 공개 리스트에 자동 리뷰를 올리지 말자고 주장했다

커밋에서 토론까지 따라가기

mm 커밋에는 Link: 트레일러로 lore.kernel.org 주소가 붙는다. 머지된 기능의 설계 논쟁을 보려면 이 링크부터 연다. 7.2에 들어간 khugepaged mTHP collapse 커밋을 예로 든다.

git log --no-merges --format='%h %s' v7.1..v7.2 -- mm/khugepaged.c | grep -i mthp
git log -1 --format='%(trailers)' 90ed32d0005 | grep -vE '^Cc:'
5fea7eb1a33 mm/khugepaged: avoid unnecessary mTHP collapse attempts
90ed32d0005 mm/khugepaged: introduce mTHP collapse support
ceaa0b64131 mm/khugepaged: improve tracepoints for mTHP orders
b5b8b329c4b mm/khugepaged: add per-order mTHP collapse failure statistics
3a460f245f0 mm/khugepaged: skip collapsing mTHP to smaller orders
472ebd691d9 mm/khugepaged: generalize hugepage_vma_revalidate for mTHP support
Link: https://lore.kernel.org/20260605161422.213817-1-npache@redhat.com
Link: https://lore.kernel.org/20260605161422.213817-2-npache@redhat.com
Link: https://gitlab.com/npache/khugepaged_mthp_test [1]
Link: https://lore.kernel.org/lkml/20250515033857.132535-1-npache@redhat.com/ [2]
Co-developed-by: Dev Jain <dev.jain@arm.com>
Signed-off-by: Dev Jain <dev.jain@arm.com>
Signed-off-by: Nico Pache <npache@redhat.com>
Reviewed-by: Wei Yang <richard.weiyang@gmail.com>
Reviewed-by: Lance Yang <lance.yang@linux.dev>
Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com>
Reviewed-by: Lorenzo Stoakes <ljs@kernel.org>
Reviewed-by: Zi Yan <ziy@nvidia.com>
Acked-by: Usama Arif <usama.arif@linux.dev>
Acked-by: David Hildenbrand (Arm) <david@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

이 커밋에는 Cc:가 50명 넘게 붙어 있다. 그중 리뷰 태그를 단 사람이 THP 영역에서 실제로 코드를 읽는 사람들이다. 메일링 리스트 스레드는 아래 도구로 받는다.

목적명령/위치
시리즈 전체를 로컬 브랜치에 적용b4 shazam <message-id>
시리즈를 mbox로 받기b4 am <message-id>
리비전 간 차이 비교b4 diff <message-id>
linux-mm 아카이브 검색https://lore.kernel.org/linux-mm/?q=s:"키워드"
주간 mm 패치 목록LWN 주간판 “Patches and updates → Memory management”
수신자 결정./scripts/get_maintainer.pl <patch>

기여를 시작하는 경로

경로할 일근거
리뷰관심 영역 시리즈에 테스트 결과나 Reviewed-by를 단다리뷰어 69명 대 작성자 119명. 메인테이너들이 가장 원하는 기여
selftests/mm깨진 테스트 수정, 커버리지 추가7.4에서 khugepaged·GUP·NOMMU 테스트 시리즈가 여럿 머지됐다
DAMONKUnit 테스트, 문서, 작은 버그 수정7.4 mm/ 커밋 1위 영역. 메인테이너 프로필 문서(Documentation/mm/damon/maintainer-profile.rst)가 있다
folio 전환·정리남은 struct page 사용처를 folio API로 바꾼다page_swap_entry(), PG_private 제거처럼 7.4에도 계속 머지된다
회귀 재현mm-unstable/mm-new를 빌드해 워크로드로 돌린다Morton이 말한 “여러 겹의 방어선” 중 테스트 단계

주의사항

  • 패치는 메인라인이 아니라 최신 mm-unstable 또는 mm-new 위에서 만든다. mm 트리에는 메인라인에 없는 변경이 수백 개 쌓여 있어 충돌이 흔하다.
  • 머지 윈도우 중에는 새 기능 시리즈를 보내지 않는다. 메인테이너가 풀 리퀘스트를 처리하는 기간이라 리뷰가 늦어진다.
  • LLM이 만든 코드를 검토 없이 대량으로 보내지 말 것. van Riel 사례처럼 아이디어가 좋아도 설계 리뷰가 막힌다. LLM을 썼다면 Assisted-by: 태그를 붙인다.
  • 자동 리뷰 도구의 출력을 linux-mm에 그대로 붙이지 말 것. Hildenbrand가 LSFMM+BPF에서 이를 명시적으로 반대했다.
  • 트리 구조는 아직 바뀌는 중이다. 패치를 보내기 전에 MAINTAINERS의 T: 항목을 다시 확인한다. Hildenbrand는 개발 모델을 정할 워킹 그룹을 만들겠다고 했다.

마무리

mm 개발은 mm-new → mm-unstable → mm-stable → 메인라인 순서로 흐른다. 2026년부터는 kernel/git/mm/ 아래 하위 트리가 늘고 있다. 변경량은 7.3부터 크게 늘었지만 리뷰어 수는 그만큼 늘지 않았다. 따라서 리뷰와 테스트가 가장 확실한 입문 경로다. 다음 글에서는 7.0부터 7.4까지 실제로 머지된 변화를 주제별로 정리한다.

참고

답글 남기기