Introduce a function for creating a null_blk device instance through configfs. Suggested-by: Chaitanya Kulkarni <Chaitanya.Kulkarni@xxxxxxx> Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@xxxxxxx> Reviewed-by: Daniel Wagner <dwagner@xxxxxxx> Signed-off-by: Bart Van Assche <bvanassche@xxxxxxx> --- common/multipath-over-rdma | 17 +++++------------ common/null_blk | 14 ++++++++++++++ tests/block/029 | 16 ++-------------- 3 files changed, 21 insertions(+), 26 deletions(-) diff --git a/common/multipath-over-rdma b/common/multipath-over-rdma index a56e7a8269db..e689a9633d13 100644 --- a/common/multipath-over-rdma +++ b/common/multipath-over-rdma @@ -620,18 +620,11 @@ run_fio() { 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" } diff --git a/common/null_blk b/common/null_blk index a4140e365955..6611db03a00e 100644 --- a/common/null_blk +++ b/common/null_blk @@ -29,6 +29,20 @@ _init_null_blk() { 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 diff --git a/tests/block/029 b/tests/block/029 index 0d521edb0cf6..dbb582eab473 100755 --- a/tests/block/029 +++ b/tests/block/029 @@ -14,19 +14,6 @@ requires() { _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 @@ -45,7 +32,8 @@ test() { : "${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)) \