ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

第五章 TTM后备存储: 4.7.1 两种空间管理器drm_mm和drm_buddy的应用实战对比

第五章 TTM后备存储: 4.7.1 两种空间管理器drm_mm和drm_buddy的应用实战对比

由前面的分析,我们了解到drm中有两种地址空间管理器:drm_mm和drm_buddy。本篇从AMDGPU驱动的实现中具体对比下两者的应用方法和场景。

概述

在 AMDGPU 驱动中,内存管理是核心功能之一。驱动使用了两种不同的 DRM 空间管理器来管理不同类型的内存资源:

  • drm_buddy:用于管理VRAM(显存)的物理内存
  • drm_mm:用于管理GTT(Graphics Translation Table)的虚拟地址空间

本文档从驱动开发者的角度,通过 AMDGPU 的实际代码,深入分析这两种管理器的设计差异、使用场景和实现细节。


1. 架构概览

1.1 在 AMDGPU 中的位置

amdgpu_device └── mman (amdgpu_mman) ├── vram_mgr (amdgpu_vram_mgr) │ └── mm: struct drm_buddy ← 管理 VRAM 物理内存 │ └── gtt_mgr (amdgpu_gtt_mgr) └── mm: struct drm_mm ← 管理 GTT 虚拟地址
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进