configure_null_blk() {
local i
- (
- cd /sys/kernel/config/nullb || return $?
- for i in nullb0 nullb1; do (
- { mkdir -p $i &&
- cd $i &&
- echo 0 > completion_nsec &&
- echo 512 > blocksize &&
- echo $((ramdisk_size>>20)) > size &&
- echo 1 > memory_backed &&
- echo 1 > power; } || exit $?
- ) done
- )
+ for i in nullb0 nullb1; do
+ _configure_null_blk $i completion_nsec=0 blocksize=512 \
+ size=$((ramdisk_size>>20)) memory_backed=1 \
+ power=1 || return $?
+ done
ls -l /dev/nullb* &>>"$FULL"
}
return 0
}
+# Configure one null_blk instance with name $1 and parameters $2..${$#}.
+_configure_null_blk() {
+ local nullb=/sys/kernel/config/nullb/$1 param val
+
+ shift
+ mkdir "$nullb" || return $?
+ while [[ $# -gt 0 ]]; do
+ param="${1%%=*}"
+ val="${1#*=}"
+ shift
+ echo "$val" > "$nullb/$param" || return $?
+ done
+}
+
_exit_null_blk() {
_remove_null_blk_devices
udevadm settle
_have_null_blk
}
-# Configure one null_blk instance.
-configure_null_blk() {
- local nullb0="/sys/kernel/config/nullb/nullb0"
-
- mkdir "$nullb0" &&
- echo 0 > "$nullb0/completion_nsec" &&
- echo 512 > "$nullb0/blocksize" &&
- echo 16 > "$nullb0/size" &&
- echo 1 > "$nullb0/memory_backed" &&
- echo 1 > "$nullb0/power" &&
- ls -l /dev/nullb* &>>"$FULL"
-}
-
modify_nr_hw_queues() {
local deadline num_cpus
: "${TIMEOUT:=30}"
_init_null_blk nr_devices=0 queue_mode=2 &&
- configure_null_blk
+ _configure_null_blk nullb0 completion_nsec=0 blocksize=512 \
+ size=16 memory_backed=1 power=1 &&
if { echo 1 >$sq; } 2>/dev/null; then
modify_nr_hw_queues &
fio --rw=randwrite --bs=4K --loops=$((10**6)) \