From 39bf3f36bb98472b16df8b9f77c0c3d42b7d427e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 16 Jan 2026 09:48:55 +0000 Subject: [PATCH 1/6] Initial plan From d61c9f5dfd281f81c94c6842fd65720b37802283 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 16 Jan 2026 09:52:02 +0000 Subject: [PATCH 2/6] docs: outline rm resource types Co-authored-by: CabbageSong <38155817+CabbageSong@users.noreply.github.com> --- README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/README.md b/README.md index a89739266..c3e230cb7 100644 --- a/README.md +++ b/README.md @@ -165,6 +165,22 @@ for the target kernel. - `nouveau/` Tools for integration with the Nouveau device driver +## Resource Manager (RM) 管理的资源类型概览 + +RM 通过 NVOC 类为用户态提供统一的句柄对象,具体类列表由芯片配置生成在 [`src/nvidia/generated/g_allclasses.h`](src/nvidia/generated/g_allclasses.h)。从这些类可以看出 RM 负责管理的核心资源类型包括: + +- 根/客户端会话与设备层级:`NV01_ROOT`、`NV01_ROOT_CLIENT`、`NV0020_GPU_MANAGEMENT`、`NV01_DEVICE_0`、`NV20_SUBDEVICE_0` 及 `NV2081_BINAPI`/`NV2082_BINAPI_PRIVILEGED`(见 g_allclasses.h 第 36-46 行)。 +- 内存与映射对象:系统/本地/用户/物理/虚拟内存类(如 `NV01_MEMORY_SYSTEM`、`NV01_MEMORY_LOCAL_USER`、`NV01_MEMORY_VIRTUAL`)、同步点与导出/导入内存(如 `NV01_MEMORY_SYNCPOINT`、`NV_MEMORY_EXPORT`、`NV_MEMORY_FABRIC`、`NV_MEMORY_MULTICAST_FABRIC`)以及内存映射器 `NV_MEMORY_MAPPER`(同文件第 47-70 行)。 +- 地址空间与上下文:GPU/Fabric/IO 虚拟地址空间类(`FERMI_VASPACE_A`、`FABRIC_VASPACE_A`、`IO_VASPACE_A`,第 68、167 行),上下文 DMA (`NV01_CONTEXT_DMA`) 等用于描述访问上下文。 +- 通道与执行引擎资源:各代 GPFIFO 渠道、用户态接口和复制/计算/图形引擎上下文(如 `KEPLER_CHANNEL_GPFIFO_A`、`HOPPER_CHANNEL_GPFIFO_A`、`DMA_COPY`、`*_COMPUTE_*`,第 81-233 行),用于调度图形、计算和 DMA 工作。 +- 显示、视频与多媒体单元:显示面 (Display) 相关类、窗口/光标通道、VBlank 回调,以及视频解码/编码/NVJPG/OFA 等引擎类(第 101-199 行)。 +- 同步与事件/时间类:事件、计时器、信号量和事件缓冲对象(如 `NV01_EVENT`、`NV01_TIMER`、`NV_SEMAPHORE_SURFACE`、`NV_EVENT_BUFFER`、`GF100_TIMED_SEMAPHORE_SW`,第 73、161、245、249 行)。 +- 调试、性能与管理功能:性能分析器、调试缓冲、访问计数与 MMU 故障缓冲等(如 `GF100_PROFILER`、`MAXWELL_PROFILER`、`NV40_DEBUG_BUFFER`、`ACCESS_COUNTER_NOTIFY_BUFFER`、`MMU_FAULT_BUFFER`,第 150-214 行)。 +- 虚拟化与安全相关:VGPU 设备/配置、保密计算、SMC 分区监控等(如 `KEPLER_DEVICE_VGPU`、`NVA081_VGPU_CONFIG`、`NV_CONFIDENTIAL_COMPUTE`、`AMPERE_SMC_*`,第 238-247、223-228 行)。 + +这些句柄类覆盖了 GPU 层级、内存与地址空间、调度/执行引擎、显示多媒体、同步、调试性能及虚拟化/安全等主要资源,体现了 RM 在驱动中的资源抽象与生命周期管理角色。 + + ## Nouveau device driver integration The Python script in the 'nouveau' directory is used to extract some of the From afab6d18dd75a6c98b3eafaa778260ce10bf9e29 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 16 Jan 2026 09:53:43 +0000 Subject: [PATCH 3/6] docs: translate rm resource overview Co-authored-by: CabbageSong <38155817+CabbageSong@users.noreply.github.com> --- README.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index c3e230cb7..ad75a1a43 100644 --- a/README.md +++ b/README.md @@ -165,20 +165,20 @@ for the target kernel. - `nouveau/` Tools for integration with the Nouveau device driver -## Resource Manager (RM) 管理的资源类型概览 +## Resource Manager (RM) managed resource types overview -RM 通过 NVOC 类为用户态提供统一的句柄对象,具体类列表由芯片配置生成在 [`src/nvidia/generated/g_allclasses.h`](src/nvidia/generated/g_allclasses.h)。从这些类可以看出 RM 负责管理的核心资源类型包括: +RM exposes NVOC classes as user-visible handles. The class list generated in [`src/nvidia/generated/g_allclasses.h`](src/nvidia/generated/g_allclasses.h) shows the kinds of resources RM manages: -- 根/客户端会话与设备层级:`NV01_ROOT`、`NV01_ROOT_CLIENT`、`NV0020_GPU_MANAGEMENT`、`NV01_DEVICE_0`、`NV20_SUBDEVICE_0` 及 `NV2081_BINAPI`/`NV2082_BINAPI_PRIVILEGED`(见 g_allclasses.h 第 36-46 行)。 -- 内存与映射对象:系统/本地/用户/物理/虚拟内存类(如 `NV01_MEMORY_SYSTEM`、`NV01_MEMORY_LOCAL_USER`、`NV01_MEMORY_VIRTUAL`)、同步点与导出/导入内存(如 `NV01_MEMORY_SYNCPOINT`、`NV_MEMORY_EXPORT`、`NV_MEMORY_FABRIC`、`NV_MEMORY_MULTICAST_FABRIC`)以及内存映射器 `NV_MEMORY_MAPPER`(同文件第 47-70 行)。 -- 地址空间与上下文:GPU/Fabric/IO 虚拟地址空间类(`FERMI_VASPACE_A`、`FABRIC_VASPACE_A`、`IO_VASPACE_A`,第 68、167 行),上下文 DMA (`NV01_CONTEXT_DMA`) 等用于描述访问上下文。 -- 通道与执行引擎资源:各代 GPFIFO 渠道、用户态接口和复制/计算/图形引擎上下文(如 `KEPLER_CHANNEL_GPFIFO_A`、`HOPPER_CHANNEL_GPFIFO_A`、`DMA_COPY`、`*_COMPUTE_*`,第 81-233 行),用于调度图形、计算和 DMA 工作。 -- 显示、视频与多媒体单元:显示面 (Display) 相关类、窗口/光标通道、VBlank 回调,以及视频解码/编码/NVJPG/OFA 等引擎类(第 101-199 行)。 -- 同步与事件/时间类:事件、计时器、信号量和事件缓冲对象(如 `NV01_EVENT`、`NV01_TIMER`、`NV_SEMAPHORE_SURFACE`、`NV_EVENT_BUFFER`、`GF100_TIMED_SEMAPHORE_SW`,第 73、161、245、249 行)。 -- 调试、性能与管理功能:性能分析器、调试缓冲、访问计数与 MMU 故障缓冲等(如 `GF100_PROFILER`、`MAXWELL_PROFILER`、`NV40_DEBUG_BUFFER`、`ACCESS_COUNTER_NOTIFY_BUFFER`、`MMU_FAULT_BUFFER`,第 150-214 行)。 -- 虚拟化与安全相关:VGPU 设备/配置、保密计算、SMC 分区监控等(如 `KEPLER_DEVICE_VGPU`、`NVA081_VGPU_CONFIG`、`NV_CONFIDENTIAL_COMPUTE`、`AMPERE_SMC_*`,第 238-247、223-228 行)。 +- Root/client sessions and device hierarchy: `NV01_ROOT`, `NV01_ROOT_CLIENT`, `NV0020_GPU_MANAGEMENT`, `NV01_DEVICE_0`, `NV20_SUBDEVICE_0`, and `NV2081_BINAPI`/`NV2082_BINAPI_PRIVILEGED` (see g_allclasses.h lines 36-46). +- Memory and mapping objects: system/local/user/physical/virtual memory classes (e.g., `NV01_MEMORY_SYSTEM`, `NV01_MEMORY_LOCAL_USER`, `NV01_MEMORY_VIRTUAL`), sync points and export/import memory (`NV01_MEMORY_SYNCPOINT`, `NV_MEMORY_EXPORT`, `NV_MEMORY_FABRIC`, `NV_MEMORY_MULTICAST_FABRIC`), and the memory mapper `NV_MEMORY_MAPPER` (lines 47-70). +- Address spaces and context descriptors: GPU/Fabric/IO virtual address spaces (`FERMI_VASPACE_A`, `FABRIC_VASPACE_A`, `IO_VASPACE_A`, lines 68, 167) plus context DMA (`NV01_CONTEXT_DMA`) for describing access contexts. +- Channel and engine execution resources: per-generation GPFIFO channels, user-mode interfaces, and copy/compute/graphics engine contexts (e.g., `KEPLER_CHANNEL_GPFIFO_A`, `HOPPER_CHANNEL_GPFIFO_A`, `DMA_COPY`, `*_COMPUTE_*`, lines 81-233) used to schedule graphics, compute, and DMA work. +- Display, video, and multimedia units: display heads, window/cursor channels, VBlank callbacks, and video decode/encode/NVJPG/OFA engine classes (lines 101-199). +- Synchronization and event/time objects: events, timers, semaphores, and event buffers (e.g., `NV01_EVENT`, `NV01_TIMER`, `NV_SEMAPHORE_SURFACE`, `NV_EVENT_BUFFER`, `GF100_TIMED_SEMAPHORE_SW`, lines 73, 161, 245, 249). +- Debug, performance, and telemetry: profilers, debug buffers, access-counter and MMU fault buffers (`GF100_PROFILER`, `MAXWELL_PROFILER`, `NV40_DEBUG_BUFFER`, `ACCESS_COUNTER_NOTIFY_BUFFER`, `MMU_FAULT_BUFFER`, lines 150-214). +- Virtualization and security: VGPU device/config classes, confidential compute, and SMC partition monitoring (`KEPLER_DEVICE_VGPU`, `NVA081_VGPU_CONFIG`, `NV_CONFIDENTIAL_COMPUTE`, `AMPERE_SMC_*`, lines 223-228, 238-247). -这些句柄类覆盖了 GPU 层级、内存与地址空间、调度/执行引擎、显示多媒体、同步、调试性能及虚拟化/安全等主要资源,体现了 RM 在驱动中的资源抽象与生命周期管理角色。 +These handle classes cover GPU hierarchy, memory/address space, scheduling/engine execution, display and multimedia, synchronization, debugging/performance, and virtualization/security resources, illustrating RM’s role in abstracting and managing GPU resources. ## Nouveau device driver integration From e4ef5d7d5d35d90325a18ac0eb81315dec533999 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 16 Jan 2026 09:55:33 +0000 Subject: [PATCH 4/6] docs: fix rm line references Co-authored-by: CabbageSong <38155817+CabbageSong@users.noreply.github.com> --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index ad75a1a43..4f19e6bf1 100644 --- a/README.md +++ b/README.md @@ -169,12 +169,12 @@ for the target kernel. RM exposes NVOC classes as user-visible handles. The class list generated in [`src/nvidia/generated/g_allclasses.h`](src/nvidia/generated/g_allclasses.h) shows the kinds of resources RM manages: -- Root/client sessions and device hierarchy: `NV01_ROOT`, `NV01_ROOT_CLIENT`, `NV0020_GPU_MANAGEMENT`, `NV01_DEVICE_0`, `NV20_SUBDEVICE_0`, and `NV2081_BINAPI`/`NV2082_BINAPI_PRIVILEGED` (see g_allclasses.h lines 36-46). -- Memory and mapping objects: system/local/user/physical/virtual memory classes (e.g., `NV01_MEMORY_SYSTEM`, `NV01_MEMORY_LOCAL_USER`, `NV01_MEMORY_VIRTUAL`), sync points and export/import memory (`NV01_MEMORY_SYNCPOINT`, `NV_MEMORY_EXPORT`, `NV_MEMORY_FABRIC`, `NV_MEMORY_MULTICAST_FABRIC`), and the memory mapper `NV_MEMORY_MAPPER` (lines 47-70). -- Address spaces and context descriptors: GPU/Fabric/IO virtual address spaces (`FERMI_VASPACE_A`, `FABRIC_VASPACE_A`, `IO_VASPACE_A`, lines 68, 167) plus context DMA (`NV01_CONTEXT_DMA`) for describing access contexts. +- Root/client sessions and device hierarchy: `NV01_ROOT`, `NV01_ROOT_CLIENT`, `NV0020_GPU_MANAGEMENT`, `NV01_DEVICE_0`, `NV20_SUBDEVICE_0`, and `NV2081_BINAPI`/`NV2082_BINAPI_PRIVILEGED` (lines 36-44). +- Memory and mapping objects: system/local/user/physical/virtual memory classes (e.g., `NV01_MEMORY_SYSTEM`, `NV01_MEMORY_LOCAL_USER`, `NV01_MEMORY_VIRTUAL`), sync points and export/import memory (`NV01_MEMORY_SYNCPOINT`, `NV_MEMORY_EXPORT`, `NV_MEMORY_FABRIC`, `NV_MEMORY_MULTICAST_FABRIC`), and the memory mapper `NV_MEMORY_MAPPER` (lines 47-69). +- Address spaces and context descriptors: GPU/Fabric/IO virtual address spaces (`FABRIC_VASPACE_A` line 68, `IO_VASPACE_A` line 70, `FERMI_VASPACE_A` line 167) plus context DMA (`NV01_CONTEXT_DMA` line 46) for describing access contexts. - Channel and engine execution resources: per-generation GPFIFO channels, user-mode interfaces, and copy/compute/graphics engine contexts (e.g., `KEPLER_CHANNEL_GPFIFO_A`, `HOPPER_CHANNEL_GPFIFO_A`, `DMA_COPY`, `*_COMPUTE_*`, lines 81-233) used to schedule graphics, compute, and DMA work. - Display, video, and multimedia units: display heads, window/cursor channels, VBlank callbacks, and video decode/encode/NVJPG/OFA engine classes (lines 101-199). -- Synchronization and event/time objects: events, timers, semaphores, and event buffers (e.g., `NV01_EVENT`, `NV01_TIMER`, `NV_SEMAPHORE_SURFACE`, `NV_EVENT_BUFFER`, `GF100_TIMED_SEMAPHORE_SW`, lines 73, 161, 245, 249). +- Synchronization and event/time objects: events, timers, semaphores, and event buffers (e.g., `NV01_EVENT` line 72, `NV01_TIMER` line 76, `GF100_TIMED_SEMAPHORE_SW` line 161, `NV_EVENT_BUFFER` line 245, `NV_SEMAPHORE_SURFACE` line 249). - Debug, performance, and telemetry: profilers, debug buffers, access-counter and MMU fault buffers (`GF100_PROFILER`, `MAXWELL_PROFILER`, `NV40_DEBUG_BUFFER`, `ACCESS_COUNTER_NOTIFY_BUFFER`, `MMU_FAULT_BUFFER`, lines 150-214). - Virtualization and security: VGPU device/config classes, confidential compute, and SMC partition monitoring (`KEPLER_DEVICE_VGPU`, `NVA081_VGPU_CONFIG`, `NV_CONFIDENTIAL_COMPUTE`, `AMPERE_SMC_*`, lines 223-228, 238-247). From 042f3ff4bec71ad9eb69baf894985feb8c5ad99d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 16 Jan 2026 09:56:20 +0000 Subject: [PATCH 5/6] docs: clarify rm line references Co-authored-by: CabbageSong <38155817+CabbageSong@users.noreply.github.com> --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 4f19e6bf1..17122fed0 100644 --- a/README.md +++ b/README.md @@ -169,10 +169,10 @@ for the target kernel. RM exposes NVOC classes as user-visible handles. The class list generated in [`src/nvidia/generated/g_allclasses.h`](src/nvidia/generated/g_allclasses.h) shows the kinds of resources RM manages: -- Root/client sessions and device hierarchy: `NV01_ROOT`, `NV01_ROOT_CLIENT`, `NV0020_GPU_MANAGEMENT`, `NV01_DEVICE_0`, `NV20_SUBDEVICE_0`, and `NV2081_BINAPI`/`NV2082_BINAPI_PRIVILEGED` (lines 36-44). +- Root/client sessions and device hierarchy: `NV01_ROOT`/`NV01_ROOT_CLIENT` (lines 36-38) and GPU/device/subdevice/BINAPI classes `NV0020_GPU_MANAGEMENT`, `NV01_DEVICE_0`, `NV20_SUBDEVICE_0`, `NV2081_BINAPI`, `NV2082_BINAPI_PRIVILEGED` (lines 40-44). - Memory and mapping objects: system/local/user/physical/virtual memory classes (e.g., `NV01_MEMORY_SYSTEM`, `NV01_MEMORY_LOCAL_USER`, `NV01_MEMORY_VIRTUAL`), sync points and export/import memory (`NV01_MEMORY_SYNCPOINT`, `NV_MEMORY_EXPORT`, `NV_MEMORY_FABRIC`, `NV_MEMORY_MULTICAST_FABRIC`), and the memory mapper `NV_MEMORY_MAPPER` (lines 47-69). -- Address spaces and context descriptors: GPU/Fabric/IO virtual address spaces (`FABRIC_VASPACE_A` line 68, `IO_VASPACE_A` line 70, `FERMI_VASPACE_A` line 167) plus context DMA (`NV01_CONTEXT_DMA` line 46) for describing access contexts. -- Channel and engine execution resources: per-generation GPFIFO channels, user-mode interfaces, and copy/compute/graphics engine contexts (e.g., `KEPLER_CHANNEL_GPFIFO_A`, `HOPPER_CHANNEL_GPFIFO_A`, `DMA_COPY`, `*_COMPUTE_*`, lines 81-233) used to schedule graphics, compute, and DMA work. +- Address spaces and context descriptors: GPU/Fabric/IO virtual address spaces (`NV01_CONTEXT_DMA` line 46, `FABRIC_VASPACE_A` line 68, `IO_VASPACE_A` line 70, `FERMI_VASPACE_A` line 167) for describing access contexts. +- Channel and engine execution resources: per-generation GPFIFO channels (lines 81-93), user-mode/display interfaces (lines 94-152), and copy/compute/graphics engine contexts such as `DMA_COPY` and `*_COMPUTE_*` (lines 200-234) used to schedule graphics, compute, and DMA work. - Display, video, and multimedia units: display heads, window/cursor channels, VBlank callbacks, and video decode/encode/NVJPG/OFA engine classes (lines 101-199). - Synchronization and event/time objects: events, timers, semaphores, and event buffers (e.g., `NV01_EVENT` line 72, `NV01_TIMER` line 76, `GF100_TIMED_SEMAPHORE_SW` line 161, `NV_EVENT_BUFFER` line 245, `NV_SEMAPHORE_SURFACE` line 249). - Debug, performance, and telemetry: profilers, debug buffers, access-counter and MMU fault buffers (`GF100_PROFILER`, `MAXWELL_PROFILER`, `NV40_DEBUG_BUFFER`, `ACCESS_COUNTER_NOTIFY_BUFFER`, `MMU_FAULT_BUFFER`, lines 150-214). From 04ba47ff708cf6b2c10f7c61b03e68038a71a447 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 16 Jan 2026 09:57:22 +0000 Subject: [PATCH 6/6] docs: refine rm references Co-authored-by: CabbageSong <38155817+CabbageSong@users.noreply.github.com> --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 17122fed0..735d29b3a 100644 --- a/README.md +++ b/README.md @@ -169,14 +169,14 @@ for the target kernel. RM exposes NVOC classes as user-visible handles. The class list generated in [`src/nvidia/generated/g_allclasses.h`](src/nvidia/generated/g_allclasses.h) shows the kinds of resources RM manages: -- Root/client sessions and device hierarchy: `NV01_ROOT`/`NV01_ROOT_CLIENT` (lines 36-38) and GPU/device/subdevice/BINAPI classes `NV0020_GPU_MANAGEMENT`, `NV01_DEVICE_0`, `NV20_SUBDEVICE_0`, `NV2081_BINAPI`, `NV2082_BINAPI_PRIVILEGED` (lines 40-44). +- Root/client sessions and device hierarchy: `NV01_ROOT` (line 36), `NV01_ROOT_NON_PRIV` (line 37), `NV01_ROOT_CLIENT` (line 38), and GPU/device/subdevice/BINAPI classes `NV0020_GPU_MANAGEMENT`, `NV01_DEVICE_0`, `NV20_SUBDEVICE_0`, `NV2081_BINAPI`, `NV2082_BINAPI_PRIVILEGED` (lines 40-44). - Memory and mapping objects: system/local/user/physical/virtual memory classes (e.g., `NV01_MEMORY_SYSTEM`, `NV01_MEMORY_LOCAL_USER`, `NV01_MEMORY_VIRTUAL`), sync points and export/import memory (`NV01_MEMORY_SYNCPOINT`, `NV_MEMORY_EXPORT`, `NV_MEMORY_FABRIC`, `NV_MEMORY_MULTICAST_FABRIC`), and the memory mapper `NV_MEMORY_MAPPER` (lines 47-69). - Address spaces and context descriptors: GPU/Fabric/IO virtual address spaces (`NV01_CONTEXT_DMA` line 46, `FABRIC_VASPACE_A` line 68, `IO_VASPACE_A` line 70, `FERMI_VASPACE_A` line 167) for describing access contexts. - Channel and engine execution resources: per-generation GPFIFO channels (lines 81-93), user-mode/display interfaces (lines 94-152), and copy/compute/graphics engine contexts such as `DMA_COPY` and `*_COMPUTE_*` (lines 200-234) used to schedule graphics, compute, and DMA work. - Display, video, and multimedia units: display heads, window/cursor channels, VBlank callbacks, and video decode/encode/NVJPG/OFA engine classes (lines 101-199). - Synchronization and event/time objects: events, timers, semaphores, and event buffers (e.g., `NV01_EVENT` line 72, `NV01_TIMER` line 76, `GF100_TIMED_SEMAPHORE_SW` line 161, `NV_EVENT_BUFFER` line 245, `NV_SEMAPHORE_SURFACE` line 249). -- Debug, performance, and telemetry: profilers, debug buffers, access-counter and MMU fault buffers (`GF100_PROFILER`, `MAXWELL_PROFILER`, `NV40_DEBUG_BUFFER`, `ACCESS_COUNTER_NOTIFY_BUFFER`, `MMU_FAULT_BUFFER`, lines 150-214). -- Virtualization and security: VGPU device/config classes, confidential compute, and SMC partition monitoring (`KEPLER_DEVICE_VGPU`, `NVA081_VGPU_CONFIG`, `NV_CONFIDENTIAL_COMPUTE`, `AMPERE_SMC_*`, lines 223-228, 238-247). +- Debug, performance, and telemetry: profilers and perf buffers (`GF100_PROFILER`, `MAXWELL_PROFILER`, `MAXWELL_PROFILER_CONTEXT/DEVICE` lines 153-156, `G84_PERFBUFFER` line 162), access-counter and MMU fault buffers (lines 211-214), debug data (`NV40_DEBUG_BUFFER`, `RM_USER_SHARED_DATA`, `GT200_DEBUGGER` lines 235-237), and counter collection (`NV_COUNTER_COLLECTION_UNIT` line 248). +- Virtualization and security: SMC partition/config/monitor classes (`AMPERE_SMC_*` lines 223-227), VGPU device/config classes (`KEPLER_DEVICE_VGPU`, `NVA081_VGPU_CONFIG`, `NVA084_KERNEL_HOST_VGPU_DEVICE` lines 239-241), and confidential compute (`NV_CONFIDENTIAL_COMPUTE` line 247). These handle classes cover GPU hierarchy, memory/address space, scheduling/engine execution, display and multimedia, synchronization, debugging/performance, and virtualization/security resources, illustrating RM’s role in abstracting and managing GPU resources.