From d228f2147085f6ef3a10344d888352bade222316 Mon Sep 17 00:00:00 2001 From: Zorro Lang Date: Tue, 30 Mar 2021 08:59:42 +0800 Subject: [PATCH] generic/233,270: unlimit the max locked memory size for io_uring The ltp/fsstress always fails on io_uring_queue_init() by returnning ENOMEM. Due to io_uring accounts memory it needs under the rlimit memlocked option, which can be quite low on some setups, especially on 64K pagesize machine. root isn't under this restriction, but regular users are. So only g/233 and g/270 which use $qa_user to run fsstress are failed. To avoid this failure, set max locked memory to unlimited before doing fsstress, then restore it after test done. Signed-off-by: Zorro Lang Reviewed-by: Eryu Guan Signed-off-by: Eryu Guan --- tests/generic/233 | 6 ++++++ tests/generic/270 | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/tests/generic/233 b/tests/generic/233 index 7eda5774..cc794c79 100755 --- a/tests/generic/233 +++ b/tests/generic/233 @@ -43,6 +43,12 @@ _fsstress() -f rename=10 -f fsync=2 -f write=15 -f dwrite=15 \ -n $count -d $out -p 7` + # io_uring accounts memory it needs under the rlimit memlocked option, + # which can be quite low on some setups (especially 64K pagesize). root + # isn't under this restriction, but regular users are. To avoid the + # io_uring_queue_init fail on ENOMEM, set max locked memory to unlimited + # temporarily. + ulimit -l unlimited echo "fsstress $args" >> $seqres.full if ! su $qa_user -c "$FSSTRESS_PROG $args" | tee -a $seqres.full | _filter_num then diff --git a/tests/generic/270 b/tests/generic/270 index 3d8656d4..e93940ef 100755 --- a/tests/generic/270 +++ b/tests/generic/270 @@ -37,6 +37,12 @@ _workout() cp $FSSTRESS_PROG $tmp.fsstress.bin $SETCAP_PROG cap_chown=epi $tmp.fsstress.bin + # io_uring accounts memory it needs under the rlimit memlocked option, + # which can be quite low on some setups (especially 64K pagesize). root + # isn't under this restriction, but regular users are. To avoid the + # io_uring_queue_init fail on ENOMEM, set max locked memory to unlimited + # temporarily. + ulimit -l unlimited (su $qa_user -c "$tmp.fsstress.bin $args" &) > /dev/null 2>&1 echo "Run dd writers in parallel" -- 2.30.2