Linux에서 NVME HMB를 확인/변경하는 방법은 무엇입니까?

Linux에서 NVME HMB를 확인/변경하는 방법은 무엇입니까?

새로운 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/, 거기에서 일부 매개변수를 동적으로 변경할 수도 있습니다.

관련 정보