新型无 DRAM NVME SSD 使用系统内存的一部分作为 HMB(主机内存缓冲区)。
如何在 Linux 上检查/更改 NVME HMB?
(验证其是否正常工作或改变其行为)
根据 NVMe 基本规范 2.0a,主机内存缓冲区的 NVME 功能 ID 为 0x0d。您可以使用以下命令检查它nvme get-feature:
# nvme get-feature /dev/nvme0 -H -f 0x0d
get-feature:0xd (Host Memory Buffer), Current value:0x000001
Memory Return (MR): False
Enable Host Memory (EHM): Enabled
Host Memory Descriptor List Entry Count (HMDLEC): 10
Host Memory Descriptor List Address (HMDLAU): 0x0
Host Memory Descriptor List Address (HMDLAL): 0xffff7000
Host Memory Buffer Size (HSIZE): 9728
Run Code Online (Sandbox Code Playgroud)
/sys/class/nvme/您还可以在相应 NVMe 控制器的目录中找到一些信息。
内核nvme模块还具有max_host_mem_size_mb可用于限制每个控制器的最大 HMB 大小的参数。
另一个nvme模块参数use_cmb_sqes可用于禁止将控制器的内存缓冲区用于 I/O SQ。假设我正确理解了这一点,这可用于使任何 NVMe 像无 DRAM 一样工作。
您可以在 处找到模块参数的当前值/sys/module/nvme/parameters/,也可以从那里动态更改其中一些参数。
| 归档时间: |
|
| 查看次数: |
7791 次 |
| 最近记录: |