新しいDRAMless NVME SSDは、システムメモリの一部をHMB(ホストメモリバッファ)として使用します。
LinuxでNVME HMBを確認/変更する方法は?
(正しく機能していることを確認するか、動作を変更してください)
答え1
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
/sys/class/nvme/
そのNVMeコントローラのカタログにもいくつかの情報があります。
カーネルモジュールには、コントローラごとの最大HMBサイズを制限するために使用できるパラメータnvme
もあります。max_host_mem_size_mb
他のnvme
モジュールパラメータをuse_cmb_sqes
使用して、I / O SQのコントローラのメモリバッファ使用を無効にできます。私がこれを正しく理解していると仮定すると、これはすべてのNVMeがDRAMレスシステムのように動作するようにするために使用できます。
でモジュールパラメータの現在の値を確認でき/sys/module/nvme/parameters/
、そこから一部のパラメータを動的に変更することもできます。