mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
d228f21470
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 <zlang@redhat.com> Reviewed-by: Eryu Guan <guaneryu@gmail.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
79 lines
1.9 KiB
Bash
Executable File
79 lines
1.9 KiB
Bash
Executable File
#! /bin/bash
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
# Copyright (c) 2006 Silicon Graphics, Inc. All Rights Reserved.
|
|
#
|
|
# FSQA Test No. 233
|
|
#
|
|
# Run fsstress with quotas enabled and limits set low and verify accounted
|
|
# quotas in the end
|
|
#
|
|
# Derived from test 231
|
|
seq=`basename $0`
|
|
seqres=$RESULT_DIR/$seq
|
|
echo "QA output created by $seq"
|
|
|
|
here=`pwd`
|
|
tmp=/tmp/$$
|
|
status=1 # failure is the default!
|
|
trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
|
|
|
|
# get standard environment, filters and checks
|
|
. ./common/rc
|
|
. ./common/filter
|
|
. ./common/quota
|
|
|
|
_filter_num()
|
|
{
|
|
tee -a $seqres.full |\
|
|
sed -e 's/[0-9][0-9]* inodes/I inodes/g' \
|
|
-e 's/[0-9][0-9]* paths/P paths/g' \
|
|
-e 's/seed = [0-9][0-9]*/seed = S/'
|
|
}
|
|
|
|
_fsstress()
|
|
{
|
|
echo ""
|
|
echo "Testing fsstress"
|
|
echo ""
|
|
|
|
out=$SCRATCH_MNT/fsstress.$$
|
|
count=5000
|
|
args=`_scale_fsstress_args -z \
|
|
-f rmdir=20 -f link=10 -f creat=10 -f mkdir=10 -f unlink=20 -f symlink=10 \
|
|
-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
|
|
echo " fsstress $args returned $?"
|
|
cat $tmp.out | tee -a $seqres.full
|
|
status=1
|
|
fi
|
|
}
|
|
|
|
# real QA test starts here
|
|
_supported_fs generic
|
|
_require_scratch
|
|
_require_quota
|
|
_require_user
|
|
|
|
_scratch_mkfs > $seqres.full 2>&1
|
|
_scratch_mount "-o usrquota,grpquota"
|
|
chmod 777 $SCRATCH_MNT
|
|
quotacheck -u -g $SCRATCH_MNT 2>/dev/null
|
|
quotaon -u -g $SCRATCH_MNT 2>/dev/null
|
|
setquota -u $qa_user 32000 32000 1000 1000 $SCRATCH_MNT 2>/dev/null
|
|
|
|
_fsstress
|
|
_check_quota_usage
|
|
_scratch_unmount
|
|
status=0
|
|
exit
|