_setup_nvmet
local nvmedev
+ local reset_nr_hugepages=false
_nvmet_target_setup
nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
_check_uuid "${nvmedev}"
+ # nvme-cli may fail to allocate linear memory for rather large IO buffers.
+ # Increase nr_hugepages to allow nvme-cli to try the linear memory allocation
+ # from HugeTLB pool.
+ if [[ -r /proc/sys/vm/nr_hugepages &&
+ "$(cat /proc/sys/vm/nr_hugepages)" -eq 0 ]]; then
+ echo 20 > /proc/sys/vm/nr_hugepages
+ reset_nr_hugepages=true
+ fi
+
local dev="/dev/${nvmedev}n1"
test_user_io "$dev" 1 512 > "$FULL" 2>&1 || echo FAIL
test_user_io "$dev" 1 511 > "$FULL" 2>&1 || echo FAIL
test_user_io "$dev" 511 1023 > "$FULL" 2>&1 || echo FAIL
test_user_io "$dev" 511 1025 > "$FULL" 2>&1 || echo FAIL
+ if [[ ${reset_nr_hugepages} = true ]]; then
+ echo 0 > /proc/sys/vm/nr_hugepages
+ fi
+
_nvme_disconnect_subsys "${def_subsysnqn}" >> "$FULL" 2>&1
_nvmet_target_cleanup