2 # SPDX-License-Identifier: GPL-2.0
3 # Copyright (c) 2015 Red Hat Inc. All Rights Reserved.
5 # FS QA Test generic/095
7 # Concurrent mixed I/O (buffer I/O, aiodio, mmap, splice) on the same files
10 seqres=$RESULT_DIR/$seq
11 echo "QA output created by $seq"
15 status=1 # failure is the default!
16 trap "_cleanup; exit \$status" 0 1 2 3 15
24 # get standard environment, filters and checks
28 # real QA test starts here
33 iodepth=$((16 * LOAD_FACTOR))
34 iodepth_batch=$((8 * LOAD_FACTOR))
35 numjobs=$((5 * LOAD_FACTOR))
37 cat >$fio_config <<EOF
41 iodepth_batch=$iodepth_batch
44 directory=$SCRATCH_MNT
92 # with ioengine=mmap and direct=1, fio requires bs to be at least pagesize,
93 # which is a fio built-in var.
94 echo 'bs=$pagesize' >> $fio_config
97 _require_fio $fio_config
98 _scratch_mkfs >>$seqres.full 2>&1
101 echo "Silence is golden"
102 $FIO_PROG $fio_config >>$seqres.full 2>&1
104 # xfs generates WARNINGs on purpose when applications mix buffered/mmap IO with
105 # direct IO on the same file. On the other hand, this fio job has been proven
106 # to be potent, we don't want to simply _disable_dmesg_check which could miss
107 # other potential bugs. So filter out the intentional WARNINGs, make sure test
108 # doesn't fail because of this warning and fails on other WARNINGs.
110 # umount before checking dmesg in case umount triggers any WARNING or Oops
113 _check_dmesg _filter_aiodio_dmesg