When system has large count of cpus(eg. 96), the test failed as aio-nr over
aio-max-nr limitation.

This patch continues to use 1024 as default iodepth, but change it if
iodepth*$(nproc) > aio-max-nr.

Signed-off-by: Xiao Liang <[email protected]>
---
 tests/block/020 | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/tests/block/020 b/tests/block/020
index 39dde66..6583a3f 100755
--- a/tests/block/020
+++ b/tests/block/020
@@ -29,10 +29,16 @@ test() {
        # shellcheck disable=SC2207
        scheds=($(sed 's/[][]//g' /sys/block/nullb0/queue/scheduler))
 
+       aio_max_nr=$(cat /proc/sys/fs/aio-max-nr)
+       max_iodepth=$((aio_max_nr/$(nproc)))
+       iodepth=1024
+       if (( iodepth > max_iodepth )); then
+               iodepth=$max_iodepth
+       fi
        for sched in "${scheds[@]}"; do
                echo "Testing $sched" >> "$FULL"
                echo "$sched" > /sys/block/nullb0/queue/scheduler
-               _fio_perf --bs=4k --ioengine=libaio --iodepth=1024 \
+               _fio_perf --bs=4k --ioengine=libaio --iodepth=$iodepth \
                        --numjobs="$(nproc)" --rw=randread --name=async \
                        --filename=/dev/nullb0 --size=1g --direct=1 \
                        --runtime=10
-- 
2.17.2

Reply via email to