Linux 7.3에서 그래픽을 위한 TTM 메모리 관리 기능이 더욱 공격적으로 변경될 예정
요약
Linux 7.3 커널에 VRAM 부족 시 메모리 보호를 강화하는 TTM 메모리 관리 개선 사항이 병합됩니다. 이를 통해 보호된 애플리케이션이 비보호 애플리케이션에 의해 메모리 할당권을 뺏기는 현상을 방지하여 게임 및 그래픽 성능을 개선합니다.
핵심 포인트
- VRAM 부족 시 cgroup 기반의 장치 메모리 보호 기능 강화
- 보호된 할당이 비보호 버퍼를 퇴거(evict)할 수 있도록 개선
- AMD, Xe, Nouveau 드라이버 등 주요 그래픽 드라이버 지원
- Linux 게임 환경 및 멀티 GPU/eGPU 경험 개선 기대
Linux 7.3에서 그래픽을 위한 TTM 메모리 관리 기능이 더욱 공격적으로 변경될 예정

지난해부터 Valve의 Linux 그래픽 팀 소속인 Natalie Vock는 VRAM (비디오 램)이 부족해지고 애플리케이션/게임들이 비디오 메모리 공간을 두고 경쟁하기 시작할 때, 장치 메모리 보호 (device memory protection)가 할당량이 GTT (Graphics Translation Table)로 넘어가는 것을 방지하지 못하는 사례들을 조사해 왔습니다. 8차례의 수정 과정을 거친 후, 공통 TTM (Translation Table Manager) 메모리 관리 코드와 cgroup 장치 메모리 코드에 대한 이러한 개선 사항들이 이제 Linux 7.3에 병합될 예정입니다.
Vock는 패치 커버 레터에서 상황을 다음과 같이 요약했습니다:
"VRAM이 부족해지고 앱들이 격렬하게 경쟁할 때, dmem (장치 메모리) 보호가 할당량이 GTT로 들어가는 것을 방지하지 못하는 몇 가지 사례를 조사해 왔습니다.
요약하자면, 이는 보호되지 않은 다른 애플리케이션들이 보호된 애플리케이션들보다 먼저 VRAM을 채워버리기 때문입니다. 이로 인해 TTM은 다른 무엇보다 먼저 GTT에서 할당을 시도하며 물러나게(back off) 되고, 결국 할당이 그곳에 배치됩니다. 기존의 퇴거 보호 (eviction protection)는 이를 방지할 수 없는데, 왜냐하면 퇴거 시도 자체가 전혀 이루어지지 않기 때문입니다 (물론 물러나는 행위 자체를 즉각적인 GTT로의 퇴거로 간주할 수도 있습니다).
이 시리즈는 할당이 cgroups에 의해 보호되는 특별한 경우를 추가함으로써 이를 완화하려고 시도합니다. 즉, 즉시 물러나는 대신, TTM은 보호된 할당을 위한 공간을 만들기 위해 해당 도메인에서 보호되지 않은 버퍼를 퇴거(evicting)시키려고 시도할 것입니다. 이를 통해 애플리케이션이 핑퐁 현상 (ping-ponging)에 빠지지 않고 시스템으로부터 부여받은 모든 메모리 보호를 실제로 사용할 수 있도록 보장합니다 (오직 보호된 할당만이 보호되지 않은 할당을 퇴거할 수 있으며, 그 반대는 불가능합니다)."
Vock는 VRAM 용량이 제한된 시스템에서 Linux 게임 경험을 개선하기 위해 작업해 온 인물입니다.
해당 패치들은 이번 주 drm-misc-next 풀(pull)의 일부입니다. 여기에는 eviction(방출)을 위한 DMEMCG 지원과 AMDGPU 및 Xe 드라이버 모두에서 이를 활성화하는 내용도 포함되어 있습니다. 또한 UDMABUF 코드는 최근 KDE의 멀티 GPU/eGPU 경험을 개선하는 작업 과정에서 Xaver Hugl에 의해 발견된 인위적인 64MB 제한을 제거했습니다. Allwinner Sun4i DRM 드라이버 역시 YUV 및 4K 지원에 대한 개선 사항이 포함되었습니다. Nouveau 드라이버 또한 다른 개선 사항의 일환으로 Natalie Vock가 작성한 Device Memory Control Group (DMEMCG) 지원을 이제 갖추게 되었습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Phoronix의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기